AtCoder

ABC353 A問題(Buildings)を解く

AtCoder_ABC353_A

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

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

A問題 Buildings(Difficulty : 12)

問題はリンク先をご覧ください。

ABC353 A問題 Buildings

条件を満たすビルを見つけたらループを抜けます。AtCoder Problems による Difficulty は 12 でした。

解答案

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

最初のビル($H_0$)より高いビルを見つけたら、インデックスを記憶してループを終了します。配列の要素は、0からカウントして、問題は1からカウントしているため1を加えています(16行目)。

$H_0$ より高いビルが無い場合は、-1 を出力するように変数 result の初期値を定めています(13行目)。

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

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

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

	int result = -1;
	for (int i = 1; i < n; ++i) {
		if (h[0] < h[i]) {
			result = i + 1;
			break;
		}
	}

	cout << result << endl;

	return 0;
}

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

Python プログラム例(ABC353A)

基本的な考え方は同じです。以下となります。

"""AtCoder Beginner Contest 353 A"""
n = int(input())
h = list(map(int, input().split()))

result = -1
for i in range(n):
    if h[0] < h[i]:
        result = i + 1
        break

print(result)

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

最後に

直近4回分のABC A問題の正解者です。

コンテスト開催日A問題の正解者数
ABC3502024/4/2010053人
ABC3512024/4/2710105人
ABC3522024/5/410372人
ABC353(今回)2024/5/1111244人

参加者は、微増傾向が続いてます。今回は増えた印象です。このまま参加者が増えていくことを願っています。

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

COMMENT

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

CAPTCHA