排序,水题,用结构体或者类都行
题目中没有说第四个参数是什么意思,需要自己去看,其实就是输出第i个人得的奖的意思
#include <iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
class Player
{
public:
int index; //开始时的次序
string time;//时间
int sloved;//解决的题目数量
};
bool Com(Player p1,Player p2)
{
if(p1.sloved!=p2.sloved)return p1.sloved>p2.sloved;
else return p1.time<p2.time;
}
int main()
{
int a,b,c,d,e;
while(cin>>a>>b>>c>>d>>e&&(a||b||c||d||e))
{
vector<Player> pl;
for(int i=1;i<=a;i++)
{
Player p;
cin>>p.sloved>>p.time;
p.index=i;
pl.push_back(p);
}
sort(pl.begin(),pl.end(),Com);
int rank=1;
for(vector<Player>::iterator it = pl.begin();it!=pl.end();it++)
{
if(it->index==e)
{
if(rank<=b)
{
cout<<"Accepted today? I've got a golden medal :)";
}
else if(rank>b&&rank<=b+c)
{
cout<<"Accepted today? I've got a silver medal :)";
}
else if(rank>b+c&&rank<=b+c+d)
{
cout<<"Accepted today? I've got a copper medal :)";
}
else
{
cout<<"Accepted today? I've got an honor mentioned :)";
}
cout<<endl;
break;
}
rank++;
}
}
return 0;
}