AtCoder

ABC355 A問題(Who Ate the Cake?)を解く

AtCoder_ABC355_A

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

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

A問題 Who Ate the Cake?(Difficulty : 12)

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

ABC355 A問題 Who Ate the Cake?

条件文を地道に書きました。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 の問題を紹介していきます。

COMMENT

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

CAPTCHA