https://atcoder.jp/contests/abc128/tasks/abc128_b
解説
https://atcoder.jp/contests/abc128/submissions/5777939
特殊なソートのルールが与えられていて、そのルールに沿ってソートをする問題。
C++ではソート時に独自の比較関数を与えることができる。
なので、市名が違えば、市名の昇順で、市名が同じなら点数の降順でソートをするように比較関数を作る。
あとは、それでソートして答えるとAC。
int N; string S[101]; int P[101]; //--------------------------------------------------------------------------------------------------- void _main() { cin >> N; rep(i, 0, N) cin >> S[i] >> P[i]; vector<int> ans; rep(i, 0, N) ans.push_back(i); sort(all(ans), [&](int a, int b) { if (S[a] != S[b]) return S[a] < S[b]; return P[a] > P[b]; }); fore(i, ans) cout << (i + 1) << endl; }