已AC代码:
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
int n;
while((scanf("%d", &n)) != EOF)
{
int t[n], k[n];
int twin=0, kwin=0, pin=0;
int tslow=0,kslow=0, tfast=n-1,kfast=n-1;
for(int i=0; i<n; i++)
{
scanf("%d", &t[i]);
}
for(int i=0; i<n; i++)
{
scanf("%d", &k[i]);
}
sort(t, t+n);
sort(k, k+n);
for(int i=0; i<n; i++)
{
if(t[tslow] > k[kslow])
{
twin++;
tslow++;
kslow++;
}
else if(t[tslow] < k[kslow])
{
kwin++;
tslow++;
kfast--;
}
else
{
if(t[tfast] > k[kfast])
{
twin++;
tfast--;
kfast--;
}
else if(t[tfast] < k[kfast])
{
kwin++;
tslow++;
kfast--;
}
else
{
if(t[tslow] < k[kfast])
{
kwin++;
tslow++;
kfast--;
}
}
}
}
//printf("%d %d %d\n", twin, kwin, pin);
printf("%d\n", 200*(twin-kwin));
}
return 0;
}
本文详细解析了著名的田忌赛马问题,通过逻辑分析找出最优策略,并提供了一段已经通过所有测试用例的代码实现,帮助读者深入理解该问题及其解决方案。
544

被折叠的 条评论
为什么被折叠?



