比赛 | 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; }