HDU 3421

来源:互联网 发布:手机应用隐藏软件 编辑:程序博客网 时间:2024/06/05 15:41

题目大意:输入n个样例,每个样例有m个数,问需要分几个子序列才能将所有正数取出来,以及所有正数的和。

解题思路:输入一个数,如果为正数就累加,次数增加1。并标记使之后的正数时不增加一,如果为负数,标记取消。

ac代码:

#include <iostream>using namespace std;int main(){int n, m, sum, a, cnt, flag, cou=1;scanf("%d", &n);while (n--){scanf("%d", &m);sum = cnt = flag = 0;for (int i=0; i<m; i++){scanf("%d", &a);if (a > 0){if (!flag){cnt++;flag = 1;}sum += a;}else if (a < 0)flag = 0;}printf("Case %d:\n", cou++);printf("%d %d\n", cnt, sum);if (n)printf("\n");}return 0;}