记录编号 31716 评测结果 AAAAAAAAAAA
题目名称 [USACO Feb08] 麻烦的聚餐 最终得分 100
用户昵称 Gravatar苏轼 是否通过 通过
代码语言 C++ 运行时间 0.042 s
提交时间 2011-11-03 16:10:09 内存使用 0.27 MiB
显示代码纯文本
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstdlib>
  4. #include<cstring>
  5. using namespace std;
  6. int q[4]={0},w[4]={0},number;
  7. int Max(int a,int b,int c)
  8. {
  9. if (a>=b&&a>=c)
  10. return a;
  11. if (b>=a&&b>=c)
  12. return b;
  13. if (c>=a&&c>=b)
  14. return c;
  15. }
  16. int main()
  17. {
  18. freopen ("egroup.in","r",stdin);
  19. freopen ("egroup.out","w",stdout);
  20. scanf("%d",&number);
  21. for (int i=0;i<number;i++)
  22. {
  23. int a;
  24. cin>>a;
  25. if (a==1)
  26. {
  27. q[1]=Max(q[2]+1,q[3]+1,q[1]+1);
  28. w[1]=Max(w[1]+1,0,0);
  29. }
  30. if (a==2)
  31. {
  32. q[2]=Max(q[3]+1,q[2]+1,0);
  33. w[2]=Max(w[1]+1,w[2]+1,0);
  34. }
  35. if (a==3)
  36. {
  37. q[3]=Max(q[3]+1,0,0);
  38. w[3]=Max(w[1]+1,w[2]+1,w[3]+1);
  39. }
  40. }
  41. q[0]=Max(q[1],q[2],q[3]);
  42. w[0]=Max(w[1],w[2],w[3]);
  43. cout<<number-Max(0,q[0],w[0]);
  44. return 0;
  45. }
  46.