最长同号连续段 |
Time Limit: 1 Seconds Memory Limit: 32768 K Total Submit:447 Accepted:179 |
Description 给出一个由非0整数组成的序列a1,a2,…,an, 设计递归算法求其中由同号整数组成的最长连续段(称为最长同号连续段)的长度。例如,序列2,3,-1,6,-1,-5,-2,2的最长同号连续段为-1,-5,-2,其长度为3。 Input 输入的第一行是一个正整数k,表示测试例个数。接下来几行是k个测试例的数据,每个测试例的数据由两行组成,其中第一行为一个正整数n (n<=1000),表示整数序列的长度,第二行给出整数序列,整数之间用一个空格隔开。 Output 对于每个测试例输出一行,含一个整数,表示相应序列的最长同号连续段的长度。 Sample Input 2 8 2 3 -1 6 -1 -5 -2 2 10 -1 -1 1 1 1 1 -1 -1 -1 -1
Sample Output 3 4 |
Source: #include<iostream.h> int count(int a[],int n) { if(n==1) return 1; else { int i=n-1,j;j=1; while(i>=1&&a[n]*a[i]>0) { j++; i--; } if(j>=count(a,n-1)) return j; else return count(a,n-1); } } int main() { int a[1001],i,j,n; cin>>j; while(j--) { cin>>n; for(i=1;i<=n;i++) cin>>a[i]; cout<<count(a,n)<<endl; } return 0; }
|