Contest 4 1002 Problem Killer【等差等比數列】

題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=5328

#include<iostream>
#include<cstdio>
using namespace std;
long long a[1000010];
int main()
{
    int t,n,i,j,m;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        for(i=0;i<n;i++)
            scanf("%I64d",&a[i]);
        if(n==1) printf("%d\n",1);
        else
        {
        m=2;
        i=0;j=2;
        while(j<n)
        {
            if(a[j]+a[j-2]==2*a[j-1]) j++;
            else
            {
                if(j-i>m) m=j-i;
                i=j-1;j=i+2;
            }
        }
        if(j-i>m) m=j-i;
        i=0;j=2;
        while(j<n)
        {
            if(a[j]*a[j-2]==a[j-1]*a[j-1]) j++;
            else
            {
                if(j-i>m) m=j-i;
                i=j-1;j=i+2;
            }
        }
        if(j-i>m) m=j-i;
        printf("%d\n",m);
        }
    }
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章