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

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

AtCoder ABC 054 A - One Card Poker (灰色, 100 点)

やり方を工夫しないと迷いそう

問題概要

Alice と Bob は、それぞれ  A, B と書かれたカードを持っている。カードの数字は、 1〜13 のいずれかである。カードの数字の強さは、

2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < 10 < 11 < 12 < 13 < 1

である。

Alice と Bob のどちらが勝つかを判定せよ (引き分けもある)。

解法

色んな解法があると思われるけど、次のようにするのが楽だと思う。

  • 1 は 14 にする
  • その上で、数を単純に大小比較する
#include <bits/stdc++.h>
using namespace std;

int main() {
    int A, B;
    cin >> A >> B;
    if (A == 1) A += 13;
    if (B == 1) B += 13;
    
    if (A > B) cout << "Alice" << endl;
    else if (A < B) cout << "Bob" << endl;
    else cout << "Draw" << endl;
}