记录编号 |
35975 |
评测结果 |
AAAAAAAAAA |
题目名称 |
田忌赛马 |
最终得分 |
100 |
用户昵称 |
TBK |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
1.328 s |
提交时间 |
2012-03-07 08:46:50 |
内存使用 |
95.71 MiB |
显示代码纯文本
- #include <iostream>
- #include <cstdio>
- #include <cstdlib>
- #include <cmath>
- #include <cstring>
- #include <string>
- #include <iomanip>
- using namespace std;
- int a[5001],b[5001],c,d,l,s=-5001,f[5001][5001];
- bool bo=false;
- int Compare( const void *elem1 , const void *elem2 )
- {
- return *(int *)elem1 - *(int *)elem2;
- }
- int bijiao(int x,int y)
- {
- if (a[y]>b[x]) return -1;
- else if (a[y]<b[x]) return 1;
- else return 0;
- }
- int main(void)
- {
- freopen ("horsea.in","r",stdin);
- freopen ("horsea.out","w",stdout);
- scanf("%d",&c);
- for (d=1;d<=c;d++) scanf("%d",&a[d]);
- for (d=1;d<=c;d++) scanf("%d",&b[d]);
- qsort(a,c,sizeof(int),Compare);
- qsort(b,c,sizeof(int),Compare);
- f[0][0]=0;
- for (d=1;d<=c;d++)
- f[d][0]=f[d-1][0]+bijiao(d,c-d+1);
- for (d=1;d<=c;d++) f[d][d]=f[d-1][d-1]+bijiao(d,d);
- for (d=1;d<=c;d++)
- for (l=1;l<=c;l++)
- 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);
- for (d=1;d<=c;d++)
- if (f[c][d]>s) s=f[c][d];
- printf("%d",s);
- fclose(stdin);
- fclose(stdout);
- return 0;
- }