1203: Super-increasing sequence

来源:互联网 发布:java变量的定义格式 编辑:程序博客网 时间:2024/05/06 19:58

1203: Super-increasing sequence

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 207  Solved: 65
[Submit][Status][Web Board]

Description

如果一个序列中任意一项都大于前面所有项之和,那么我们就称这个序列为超递增序列。

现在有一个整数序列,你可以将序列中任意相邻的若干项合并成一项,合并之后这项的值为合并前各项的值之和。通过若干次合并,最终一定能得到一个超递增序列,那么得到的超递增序列最多能有多少项呢?

Input

输入数据的第一行包含正整数T (1 <= T <= 500),表示接下来一共有T组测试数据。

每组测试数据的第一行包含一个整数N (1 <= N <= 100000),表示这个整数序列一共有N项。接下来一行包含N个不大于10000的正整数,依次描述了这个序列中各项的值。

至多有10组数据满足N > 1000

Output

对于每组测试数据,用一行输出一个整数,表示最终得到的超递增序列最多能有多少项。

Sample Input

321 131 2 461 2 4 3 6 5

Sample Output

134

 

 

#include<iostream>
using namespace std;
int main()
{
 int t ;
 cin>>t;
 while(t--){
  int n;
  cin>>n;
  int i,a[100002],sum=0,count=1,sum1=0;
  for(i=0;i<n;i++)
   cin>>a[i];
  sum = a[0];
  for(i=1;i<n;i++)
  {
   sum1+=a[i];
   if(sum1>sum)
   {
    sum+=sum1;
    count++;
    sum1=0;
   }
   else
    continue;
  }
  cout<<count<<endl;
 }
 return 0;
}

原创粉丝点击