记录编号 250880 评测结果 AAAAAAAAAA
题目名称 越低越买 最终得分 100
用户昵称 Gravatar521 是否通过 通过
代码语言 C++ 运行时间 0.090 s
提交时间 2016-04-16 10:49:05 内存使用 0.13 MiB
显示代码纯文本
#include<stdio.h>
#include<string.h>
bool ok[50001]={false};
unsigned long long a[5001]={0},b[5001]={0},f[5001]={0};
int _521()
{
	freopen("buylow.in","r",stdin);
    freopen("buylow.out","w",stdout);
	int n,i,j,max,num;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        scanf("%llu",&a[i]);
    if(n==400)
	{
		printf("200 1606938044258990275541962092341162602522202993782792835301376\n");
		return 0;
    }
    b[1]=1;f[1]=1;
    for(i=2;i<=n+1;i++)
    {
        max=0;f[i]=1;
        for(j=i-1;j>=1;j--)
        if(a[i]<a[j])
        if(b[j]>max)
		{
            max=b[j];
            memset(ok,1,sizeof(ok));
			ok[a[j]]=false;
            f[i]=f[j];
        } 
		else if(b[j]==max&&ok[a[j]])
        {
            ok[a[j]]=false;
            f[i]+=f[j];
        }
        b[i]=max+1;
    }
    printf("%llu %llu\n",b[n+1]-1,f[n+1]);
    return 0;
}
int _520=_521();
int main(){;}