公式
A - Jiro 解説
by
A - Jiro 解説
by
nok0
初心者の方へ
- プログラミングの学習を始めたばかりで何から手をつけるべきかわからない方は、まずは practice contest の問題A「Welcome to AtCoder」をお試しください。言語ごとに解答例が掲載されています。
- また、プログラミングコンテストの問題に慣れていない方は、 AtCoder Beginners Selection の問題をいくつか試すことをおすすめします。
- C++入門 AtCoder Programming Guide for beginners (APG4b) は、競技プログラミングのための C++ 入門用コンテンツです。
- Python入門 AtCoder Programming Guide for beginners (APG4bPython) は、競技プログラミングのための Python 入門用コンテンツです。
この問題には様々な解法が考えられます。
一つ目の解法は、入力のパターンが高々 8 パターン(矛盾がない入力は実際には 6 パターン)しかないので、全てのパターンについて場合分けを行うことです。これは if 文を用いて行えますが、やや面倒です。
より賢い解法として、以下の場合分けが考えられます。
- \(S_\mathrm{AB}\neq S_\mathrm{AC}\) のとき:A が次男である。
- 上を満たさず \(S_\mathrm{AB}= S_\mathrm{BC}\) のとき:B が次男である。
- 上の二つを満たさないとき:C が次男である。
この場合分けのほうが簡明です。
他にも、大小関係 6 パターンを全て試し、入力の条件を満たすかを確認するといった方針も考えられます。
以下の実装例は、簡単な場合分けによるものです。
実装例(C++):
#include <bits/stdc++.h>
using namespace std;
int main() {
char a, b, c;
cin >> a >> b >> c;
if(a != b)
cout << "A" << endl;
else if(a == c)
cout << "B" << endl;
else
cout << "C" << endl;
}
投稿日時:
最終更新: