ABC128 B Guidebook

オブジェクトを作って、それに独自の順序を与える方法を

事前に調べていたので、僕にしては爆速で解くことができました。

 

#include <bits/stdc++.h>
using namespace std;

struct Restaurant {
string s;
int p;
int i;
Restaurant(){};
Restaurant(string s_, int p_, int i_) {
s = s_;
p = p_;
i = i_;
};
bool operator<(const Restaurant& o) const {
return tie(s, o.p) < tie(o.s, p);
}
};

int main() {
int n;
cin >> n;
vector<Restaurant> r(n);
for (int i = 0; i < n; i++) {
cin >> r[i].s >> r[i].p;
r[i].i = i + 1;
}
sort(begin(r), end(r));
for (auto&& u : r) cout << u.i << endl;
}