はまやんはまやんはまやん

hamayanhamayan's blog

中央値 [第四回 アルゴリズム実技検定 A]

https://atcoder.jp/contests/past202010-open/tasks/past202010_a

解説

https://atcoder.jp/contests/past202010-open/submissions/21465476

ABCの数の比較をして中央値となるのが"A","B","C"のどれであるかを答える問題。
数を答えるならソートして中央値を答えればいいが、添え字を答える必要があるため、実装を工夫する必要がある。
普通に場合分けをして答えてもいいが、自分の回答ではpairを使ってソートして答えている。
(整数,添え字)でpairを作りソートをすると、C++のpairのソートはfirstで最初にソートしてくれるため、
普通に整数でソートしたのと同様の動きをする。
その後中央値の添え字部分を答えてやれば、答えが求まる。

pair<int,char> v[3];
string ABC = "ABC";
//---------------------------------------------------------------------------------------------------
void _main() {
    rep(i, 0, 3) {
        int x; cin >> x;
        v[i].first = x;
        v[i].second = ABC[i];
    }
    sort(v, v + 3);
    cout << v[1].second << endl;
}