ABC041 C - 背の順
問題概要
与えられた数字をソートして、もとの添え字の番号を出力する。
解法
pairは1つ目の要素でソートした後、2つ目の要素でソートするので、pairに(身長, 番号)を入れることで、身長でソートした番号がわかる。
ミス
特になし。
コード
#include <iostream> #include <string> #include <algorithm> #include <functional> #include <vector> #include <map> #include <cstdio> #include <cstdlib> using namespace std; typedef long long ll; typedef pair<int,int> pint; typedef vector<int> vint; typedef vector<pint> vpint; #define mp make_pair #define all(v) (v).begin(),(v).end() #define rep(i,n) for(int i=0;i<(n);i++) int main(void){ int n; cin >> n; vpint a; rep(i, n){ int tmp; cin >> tmp; a.push_back(mp(tmp, i + 1)); } sort(all(a)); reverse(all(a));//逆転 rep(i, n){ printf("%d\n", a[i].second); } return 0; }