srupのメモ帳

競プロで解いた問題や勉強したことを記録していくメモ帳

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;
}