题目
思路
水题
代码
#include <iostream>
#include <string>
#include<algorithm>
#include<vector>
#include<stack>
#include<map>
#include<set>
#include<queue>
#include<list>
#include<sstream>
#include<string.h>
#include<math.h>
using namespace std;
#define nmax 105
#define inf 999999
int num, order;
typedef struct info
{
long ID;
string name;
int score;
}info;
vector<info> vec;
bool cmp1(const info& a, const info& b)
{
return a.ID < b.ID;
}
bool cmp2(const info& a, const info& b)
{
if (a.name != b.name)
return a.name < b.name;
else
return a.ID < b.ID;
}
bool cmp3(const info& a, const info& b)
{
if (a.score != b.score)
return a.score < b.score;
else
return a.ID < b.ID;
}
int main()
{
cin >> num >> index;
for (int i = 0; i < num; ++i)
{
info m;
cin >> m.ID >> m.name >> m.score;
vec.push_back(m);
}
switch (index)
{
case 1:
sort(vec.begin(), vec.end(), cmp1);
break;
case 2:
sort(vec.begin(), vec.end(), cmp2);
break;
case 3:
sort(vec.begin(), vec.end(), cmp3);
break;
default:
break;
}
for (auto& p:vec)
{
printf("%06d %s %d\n", p.ID, p.name.c_str(), p.score);
}
return 0;
}