けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder ABC 245 A - Good morning (7Q, 灰色, 100 点)

ペア値の大小比較。もしくは「分」に換算する手もある。

問題概要

高橋君は  A B 分に起きて、青木君は  C D 分 1 秒に起きた。

高橋君の起床時刻が青木君より早いならば Takahashi を、そうでないならば Aoki を出力せよ。

考えたこと

ペア値  (A, B) と、ペア値  (C, D) の大小比較である。ただし、 A = C かつ  B = D である場合は、 (A, B) \lt (C, D) と考えることとする (青木君の方が 1 秒遅く起きることになるため)。

一般に、これらペア値の大小比較は

  • 1 個目の要素である、 A C との間に大小関係があるならば、その大小関係がペア値の大小関係となる
  •  A = C であるときは、2 個目の要素の大小関係が、ペア値の大小関係となる

というふうに考えられる。このロジックを実装すればよい。あるいは、C++ の標準ライブラリを用いて、ペア値の大小比較をしてもよい (上記の通りの大小比較を機械的にしてくれる)。以下のコードでは、ペア値の大小比較を用いている。

コード

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

int main() {
    int A, B, C, D;
    cin >> A >> B >> C >> D;
    
    if (make_pair(A, B) <= make_pair(C, D))
        cout << "Takahashi" << endl;
    else
        cout << "Aoki" << endl;
}