AtCoder

ABC371 A問題(Jiro)を解く

AtCoder_ABC371_A

AtCoder が提供しているABC(AtCoder Beginner Contest)371 A問題をC++とPythonで解いてみました。ABC371は、2024年9月14日21:00に実施されました。

AtCoder の紹介はこちらに、プログラミングの方針はこちらに記事があります。

A問題 Jiro(Difficulty : 34)

問題の詳細は、リンク先をご覧ください。

ABC371 A問題 Jiro

丁寧に条件分岐で判断します。AtCoder Problems による Difficulty は 34 でした。

解答案

C++ プログラム例(ABC371A)

3つの文字の組み合わせは、$2^3 = 8$ 通りしかありません。実際には、もう少し減らすことができます。

  • $A > B$ の場合
    • $A > C$ の場合
      $B$ と $C$ の大きい方が2番目になります。
    • $C > A$ の場合
      $C > A > B$ となるため、$A$が2番目になります。
  • $B > A$ の場合
    • $B > C$ の場合
      $A$ と $C$ の大きい方が2番目になります。
    • $C > B$の場合
      $C > B > A$ となるため、$B$ が2番目になります。

以下が、C++プログラムです。

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

int main()
{
	char sab, sac, sbc;
	cin >> sab >> sac >> sbc;

	if (sab == '>') {
		if (sac == '>') {
			if (sbc == '>') {
				cout << 'B' << endl;
			} else {
				cout << 'C' << endl;
			}
		} else {
			cout << 'A' << endl;
		}
	} else {
		if (sbc == '>') {
			if (sac == '>') {
				cout << 'A' << endl;
			} else {
				cout << 'C' << endl;
			}
		} else {
			cout << 'B' << endl;
		}
	}

	return 0;
}

AC(Accepted=正しいプログラム)と判定されました。

Python プログラム例(ABC371A)

Python版も基本的な考え方は同じです。以下がプログラムです。

"""AtCoder Beginner Contest 371 A"""
sab, sac, sbc = input().split()

if sab == '>':
    if sac == '>':
        if sbc == '>':
            print('B')
        else:
            print('C')
    else:
        print('A')
else:
    if sbc == '>':
        if sac == '>':
            print('A')
        else:
            print('C')
    else:
        print('B')

こちらも「AC」と判定されました。

最後に

ABC371は、体調が悪く参加できませんでした。少し遅くなりましたが、解ける問題は記事で紹介します。

引き続き ABC の問題を紹介していきます。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA