C
来源:互联网 发布:windows 创建快捷方式 编辑:程序博客网 时间:2024/06/16 08:56
题意:田忌和齐王赛马,运用古代田忌赛马的知识,看一看田忌可以赢几场,赢一场得200,输一场掉200,看一看田忌最终可以得多少钱
解题思路:田忌和齐王赛马,如果田忌所剩的马中的最好的马,不如齐王最好的马,那么,田忌就用自己最垃圾的马,来和齐王最好的马来比,可以得到最优解
#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;
}
0 0