记录编号 35975 评测结果 AAAAAAAAAA
题目名称 田忌赛马 最终得分 100
用户昵称 GravatarTBK 是否通过 通过
代码语言 C++ 运行时间 1.328 s
提交时间 2012-03-07 08:46:50 内存使用 95.71 MiB
显示代码纯文本
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstdlib>
  4. #include <cmath>
  5. #include <cstring>
  6. #include <string>
  7. #include <iomanip>
  8. using namespace std;
  9. int a[5001],b[5001],c,d,l,s=-5001,f[5001][5001];
  10. bool bo=false;
  11. int Compare( const void *elem1 , const void *elem2 )
  12. {
  13. return *(int *)elem1 - *(int *)elem2;
  14. }
  15. int bijiao(int x,int y)
  16. {
  17. if (a[y]>b[x]) return -1;
  18. else if (a[y]<b[x]) return 1;
  19. else return 0;
  20. }
  21. int main(void)
  22. {
  23. freopen ("horsea.in","r",stdin);
  24. freopen ("horsea.out","w",stdout);
  25. scanf("%d",&c);
  26. for (d=1;d<=c;d++) scanf("%d",&a[d]);
  27. for (d=1;d<=c;d++) scanf("%d",&b[d]);
  28. qsort(a,c,sizeof(int),Compare);
  29. qsort(b,c,sizeof(int),Compare);
  30. f[0][0]=0;
  31. for (d=1;d<=c;d++)
  32. f[d][0]=f[d-1][0]+bijiao(d,c-d+1);
  33. for (d=1;d<=c;d++) f[d][d]=f[d-1][d-1]+bijiao(d,d);
  34. for (d=1;d<=c;d++)
  35. for (l=1;l<=c;l++)
  36. if (d!=l) f[d][l]=f[d-1][l-1]+bijiao(d,l)>f[d-1][l]+bijiao(d,c-d+l+1)?f[d-1][l-1]+bijiao(d,l):f[d-1][l]+bijiao(d,c-d+l+1);
  37. for (d=1;d<=c;d++)
  38. if (f[c][d]>s) s=f[c][d];
  39. printf("%d",s);
  40. fclose(stdin);
  41. fclose(stdout);
  42. return 0;
  43. }