AtCoder が提供しているABC(AtCoder Beginner Contest)355 A問題をC++とPythonで解いてみました。ABC355は、2024年5月25日21:00に実施されました。
AtCoder の紹介はこちらに、プログラミングの方針はこちらに記事があります。
A問題 Who Ate the Cake?(Difficulty : 12)
問題の詳細は、リンク先をご覧ください。
条件文を地道に書きました。AtCoder Problems による Difficulty は 12 でした。
解答案
C++ プログラム例(ABC355A)
りんごさんの証言をA、すぬけさんの証言をBとします。どちらの証言も無実の人を示しています。
- AとBが一致している場合は、犯人がひとりに絞れません。-1 を出力します。
- AとBがどちらも人1ではない場合、犯人は人1となります。
- AとBがどちらも人2ではない場合、犯人は人2となります。
- AとBがどちらも人3ではない場合、犯人は人3となります。
以下が、C++プログラムです。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
if (a == b) {
cout << -1 << endl;
} else if ((a != 1)&&(b != 1)) {
cout << 1 << endl;
} else if ((a != 2)&&(b != 2)) {
cout << 2 << endl;
} else if ((a != 3)&&(b != 3)) {
cout << 3 << endl;
}
return 0;
}
AC(Accepted=正しいプログラム)と判定されました。
Python プログラム例(ABC355A)
Python版も基本的な考え方は同じです。以下がプログラムです。
"""AtCoder Beginner Contest 355 A"""
a, b = map(int, input().split())
if a == b:
print(-1)
elif a != 1 and b != 1:
print(1)
elif a != 2 and b != 2:
print(2)
elif a != 3 and b != 3:
print(3)
こちらも「AC」と判定されました。
最後に
今回のコンテストで、レートがかなり下がりました。残念である一方、コンテストで問題を解くことは楽しめています。
引き続き ABC の問題を紹介していきます。