记录编号 |
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;
}