题目大意:输入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;
}