对田忌和王的马的速度按从大到小排序,
如果田忌最慢的马比大王最慢的马快 那么先赢一局,
如果田忌最慢的马比大王最慢的马慢 那么用最慢的马和大王最快的马比赛,
如果田忌最慢的马和大王最慢的马的速度一样 分情况讨论贪心,
如果田忌当前最快的马比大王当前最快的马速度还要快就直接比掉,
如果田忌当前最快的马比大王当前最快的马速度慢,田忌拿当前最慢的马和大王当前最快的马比,
如果田忌当前最快的马和大王当前最快的马的速度一样,田忌就选取一匹最慢的马和大王最快的马比,此时不用考虑田忌最慢的马的速度和大王最快马的速度一样
代码如下:
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main ()
{
int n;
while(cin>>n&&n!=0)
{
vector<int>TianJiHorse;
vector<int>KingHorse;
int temp;
for(int i=0;i<n;i++)
{
cin>>temp;
TianJiHorse.push_back(temp);
}
for(int i=0;i<n;i++)
{
cin>>temp;
KingHorse.push_back(temp);
}
sort(TianJiHorse.begin(),TianJiHorse.end());
sort(KingHorse.begin(),KingHorse.end());
int tMin=0,kMin=0,tMax=n-1,kMax=n-1,result=0;
for(int i=0;i<n;i++)
{
if(TianJiHorse[tMax]>KingHorse[kMax])
{
tMax--;
result++;
kMax--;
}
else if(TianJiHorse[tMax]<KingHorse[kMax])
{
kMax--;
tMin++;
result--;
}
else
{
if(TianJiHorse[tMin]>KingHorse[kMin])
{ tMin++;
kMin++;
result++;
}
else if(TianJiHorse[tMin]<KingHorse[kMin])
{ tMin++;
kMax--;
result--;
}
else{
if(TianJiHorse[tMin] < KingHorse[kMax])
{
kMax--;
tMin++;
result--;
}
#include<vector>
#include<algorithm>
using namespace std;
int main ()
{
int n;
while(cin>>n&&n!=0)
{
vector<int>TianJiHorse;
vector<int>KingHorse;
int temp;
for(int i=0;i<n;i++)
{
cin>>temp;
TianJiHorse.push_back(temp);
}
for(int i=0;i<n;i++)
{
cin>>temp;
KingHorse.push_back(temp);
}
sort(TianJiHorse.begin(),TianJiHorse.end());
sort(KingHorse.begin(),KingHorse.end());
int tMin=0,kMin=0,tMax=n-1,kMax=n-1,result=0;
for(int i=0;i<n;i++)
{
if(TianJiHorse[tMax]>KingHorse[kMax])
{
tMax--;
result++;
kMax--;
}
else if(TianJiHorse[tMax]<KingHorse[kMax])
{
kMax--;
tMin++;
result--;
}
else
{
if(TianJiHorse[tMin]>KingHorse[kMin])
{ tMin++;
kMin++;
result++;
}
else if(TianJiHorse[tMin]<KingHorse[kMin])
{ tMin++;
kMax--;
result--;
}
else{
if(TianJiHorse[tMin] < KingHorse[kMax])
{
kMax--;
tMin++;
result--;
}
}
}
}
cout<<result*200<<endl;
}
return 0;
}
}
}
cout<<result*200<<endl;
}
return 0;
}