AtCoder

ABC367 A問題(Shout Everyday)を解く

AtCoder_ABC367_A

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

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

A問題 Shout Everyday(Difficulty : 43)

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

ABC367 A問題 Shout Everyday

就寝時間と起床時間の関係によって、2つの場合に分けて考えます。AtCoder Problems による Difficulty は 43 でした。

解答案

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

就寝時間 < 起床時間であれば、その間の時間は寝ています。逆に 起床時間 < 就寝時間であれば、その間は起きています。この2つの場合に分けて判断しました。

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

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

int main()
{
	int a, b, c;
	cin >> a >> b >> c;

	if (b < c) {
		if ((a < b)||(c < a)) {
			cout << "Yes" << endl;
		} else {
			cout << "No" << endl;
		}
	} else {
		if ((c < a)&&(a < b)) {
			cout << "Yes" << endl;
		} else {
			cout << "No" << endl;
		}
	}

	return 0;
}

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

Python プログラム例(ABC367A)

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

"""AtCoder Beginner Contest 367 A"""
a, b, c = map(int, input().split())

if b < c:
    print("Yes" if a < b or c < a else "No")
else:
    print("Yes" if c < a < b else "No")

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

最後に

変に考えすぎて、1度WA判定を受けました。A問題は速く解く必要はありますが、5分のペナルティも大きいです。

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

COMMENT

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

CAPTCHA