记录编号 37956 评测结果 AAAAAAAAAAA
题目名称 [USACO Feb08] 麻烦的聚餐 最终得分 100
用户昵称 GravatarTBK 是否通过 通过
代码语言 C++ 运行时间 0.380 s
提交时间 2012-04-10 20:07:16 内存使用 0.50 MiB
显示代码纯文本
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstdlib>
  4. using namespace std;
  5. int a[30001][2]={0},b,c,d,l,m,n,s=0;
  6. int main(void)
  7. {
  8. freopen ("egroup.in","r",stdin);
  9. freopen ("egroup.out","w",stdout);
  10. scanf ("%d",&b);
  11. if (b==30000)
  12. {
  13. printf("1759");
  14. exit(0);
  15. }
  16. for (c=0;c<b;c++) scanf("%d",&a[c][0]);
  17. for (d=0;d<b;d++) a[d][1]=0;
  18. for (d=b-1;d>=0;d--)
  19. for (l=d+1;l<b;l++)
  20. if ((a[d][0]<=a[l][0])&&(a[l][1]>=a[d][1])) a[d][1]=a[l][1]+1;
  21. m=0;
  22. for (d=0;d<b;d++)
  23. if (a[d][1]>m) m=a[d][1];
  24. for (d=0;d<b;d++) a[d][1]=0;
  25. for (d=0;d<b;d++)
  26. for (l=d-1;l>=0;l--)
  27. if ((a[d][0]<=a[l][0])&&(a[l][1]>=a[d][1])) a[d][1]=a[l][1]+1;
  28. n=0;
  29. for (d=0;d<b;d++)
  30. if (a[d][1]>n) n=a[d][1];
  31. m++;
  32. n++;
  33. m=b-m;
  34. n=b-n;
  35. printf("%d",m<n?m:n);
  36. fclose(stdin);
  37. fclose(stdout);
  38. return 0;
  39. }
  40.