记录编号 344229 评测结果 AAAAAAAAAA
题目名称 田忌赛马 最终得分 100
用户昵称 GravatarNewBee 是否通过 通过
代码语言 C++ 运行时间 1.525 s
提交时间 2016-11-10 06:31:29 内存使用 76.88 MiB
显示代码纯文本
#include<cstdio>
#include<algorithm>
#include<iostream>
#define Cu fclose(stdin);fclose(stdout);return 0;
#define Begin freopen("horsea.in","r",stdin);freopen("horsea.out","w",stdout);chul();Cu
using namespace std;
const int maxn=5010;
int king[maxn],son[maxn],f[maxn][maxn];
bool comp(const int& a,const int& b){
	return a>b;
}
int money(int x,int y){
	if(x==y)return 0;
	else if(x>y)return -1;
	return 1;
}
void chul(){
	int n;
	scanf("%d",&n);
	for(int i=1;i<=n;i++)scanf("%d",&king[i]);
	for(int i=1;i<=n;i++)scanf("%d",&son[i]);
	sort(king+1,king+1+n,comp);
	sort(son+1,son+1+n,comp);
	int k;
	int ans=-0x7f7f7f7f;
	for(int i=1;i<=n;i++){
		for(int j=0;j<=i;j++){
			k=i-j;
			if(j==0){
				f[j][k]=f[j][k-1]+money(king[i],son[n-k+1]);
			}
			else if(k==0){
				f[j][k]=f[j-1][k]+money(king[i],son[j]);
			}
			else{
				f[j][k]=max(f[j-1][k]+money(king[i],son[j]),f[j][k-1]+money(king[i],son[n-k+1]));
			}
			if(i==n)ans=max(ans,f[j][k]);
		}
	}
	printf("%d\n",ans);
}
int main(){
	Begin;
}