比赛 20120619 评测结果 AAAAAWAAAW
题目名称 免费午餐 最终得分 80
用户昵称 Czb。 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2012-06-19 21:02:15
显示代码纯文本
#include<stdio.h>

int n,a,len,f[100001];

int main()
{
	freopen("lunch.in","r",stdin);
	freopen("lunch.out","w",stdout);
	int i,j,l,r,m;
	scanf("%d",&n);
	len=0;f[0]=0x7FFFFFFF;
	for(i=1;i<=n;i++)
	{
		scanf("%d",&a);
		if(a<f[len])
		{
			len++;
			f[len]=a;
		}
		else
		{
			l=0;r=len;
			while(l<r-1)
			{
				m=(l+r)>>1;
				if(f[m]<=a)r=m;
				else l=m;
			}
			f[r]=a;
		}
	}
	printf("%d\n",len);
	return 0;
}