//模板
#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
using namespace std;
/*
1-问题描述:贪心算法 -- 田忌赛马问题 openjudge百炼 2287
2-解决办法:规则 贪心方法策略 从前和后指针数组
3-时间:2021年4月7日 11时19分
*/
//宏定义区
#define MAXN (1000+10)
//全局变量数据结构定义区
int n,money,l1,l2,r1,r2;
int a[MAXN],b[MAXN];
//函数定义区
int main()
{
scanf("%d",&n);
while(n!=0)
{
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]); //获得田忌的马的指标
}
for(int i=0;i<n;i++)
{
scanf("%d",&b[i]); //获得齐威王的马的指标
}
sort(a,a+n);
sort(b,b+n);
money = 0;
l1 = l2 = 0;
r1 = r2 = n-1;
while(l1 <= r1)
{
if(a[r1] > b[r2]) //田忌的快马比齐威王快
{
money += 200;
r1 --;
r2 --;
}
else if(a[r1] < b[r2])//田忌的快马比齐威王慢
{
money -=200;
l1++;
r2--;
}
else
{
if(a[l1] > b[12])
{
money +=200;
++l1;
++l2;
}
else
{
if(a[l1] < b[r2])
{
money -= 200;
++l1;
--r2;
}
}
}
}
printf("%d\n",money);
scanf("%d",&n);
}
}
55天 - 贪心算法 - 田忌赛马问题 openjudge百炼 2287
最新推荐文章于 2022-10-08 11:00:05 发布