AtCoder

ABC376 A問題(Candy Button)を解く

AtCoder_ABC376_A

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

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

A問題 Candy Button(Difficulty : 19)

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

ABC376 A問題 Candy Button

前回飴をもらった時間を記憶して、そこからの差を判定します。AtCoder Problems による Difficulty は 19 でした。

解答案

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

問題から読み取りにくいですが、最初の飴はもらうことができます(13、14行目)。あとは、直前にもらった飴の時間との差を判定します(16ー19行目)。

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

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

int main()
{
	int n, c;
	cin >> n >> c;
	vector<int> t(n);
	for (int i = 0; i < n; ++i) {
		cin >> t[i];
	}

	int result = 1;
	int pre_time = t[0];
	for (int i = 1; i < n; ++i) {
		if (t[i] - pre_time >= c) {
			++result;
			pre_time = t[i];
		}
	}

	cout << result << endl;

	return 0;
}

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

Python プログラム例(ABC376A)

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

"""AtCoder Beginner Contest 376 A"""
n, c = map(int, input().split())
t = list(map(int, input().split()))

result = 1
pre_time = t[0]
for i in range(1, n):
    if t[i] - pre_time >= c:
        result += 1
        pre_time = t[i]

print(result)

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

最後に

今回は、E問題までの5問を解くことができました。たくさん解けるとうれしく感じます(レートはあまり変わりませんでしたが)。

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

COMMENT

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

CAPTCHA