rt,感觉思路是对的,我把每类个赋值,再sort
#include <bits/stdc++.h>
using namespace std;
struct ovo{
string name;
int val;
};
bool cmp(ovo x, ovo y) {
return x.val < y.val;
}
int main() {
int n; cin >> n;
vector <ovo> rsy(n + 1);
vector <string> a(n + 1);
string v[3] = {"DOWN", "SAME", "UP"};
for (int i = 0; i < n; i ++) {
string b;
cin >> a[i] >> b;
rsy[i].name = a[i];
if (b == v[2]) rsy[i].val = 2;
else if (b == v[1]) rsy[i].val = 1;
else rsy[i].val = 0;
}
sort(rsy.begin(), rsy.begin() + n, cmp);
for (int i = 0; i < n; i ++) {
cout << rsy[i].name << '\n';
}
return 0;
}