比赛 20120925 评测结果 WWWTWWWWWW
题目名称 数列游戏 最终得分 0
用户昵称 song 运行时间 1.009 s
代码语言 C++ 内存使用 3.14 MiB
提交时间 2012-09-25 21:16:54
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
int n,ni[1001]={0},a[1001]={0},b[1001]={0},maxn=0,pp=0;
int main()
{
    freopen("seqgame.in","r",stdin);
    freopen("seqgame.out","w",stdout);
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>ni[i];
    }
	for(;;)
    {
		maxn=0;
		a[0]=0;
		if(ni[0]==1)
        {
            a[0]=1;
        }
        for(int i=1;i<n;i++)
        {
			a[i]=0;
            if(ni[i]==i+1)
            {
                a[i]++;
            }
            a[i]=a[i-1]+a[i];
        }
        if(ni[n-1]==n-1)
        {
            b[n-1]++;
        }
		b[n-1]=0;
        for(int i=n-2;i>=0;i--)
        {
			b[i]=0;
            if(ni[i]==i)
            {
                b[i]++;
            }
            b[i]=b[i]+b[i+1];
        }
        for(int i=0;i<n;i++)
        {
            if(a[i]+b[i]-1>maxn)
            {
                maxn=a[i]+b[i]-1;
			    pp=i;
            }
        }
	    if(maxn<a[n-1])
	    {
		    cout<<a[n-1]<<endl;
			return 0;
	    }
	    else
	    {
		    for(int i=pp;i<n;i++)
		    {
			    ni[i]=ni[i+1];
		    }
			a[n-1]=0;
			b[n-1]=0;
		    n--;
	    }
	}
}