AtCoder が提供しているABC(AtCoder Beginner Contest)353 のA問題をC++とPythonで解いてみました。ABC353は、2024年5月11日21:00に実施されました。
AtCoder の紹介はこちらに、プログラミングの方針はこちらに記事があります。
A問題 Buildings(Difficulty : 12)
問題はリンク先をご覧ください。
条件を満たすビルを見つけたらループを抜けます。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問題の正解者数 |
ABC350 | 2024/4/20 | 10053人 |
ABC351 | 2024/4/27 | 10105人 |
ABC352 | 2024/5/4 | 10372人 |
ABC353(今回) | 2024/5/11 | 11244人 |
参加者は、微増傾向が続いてます。今回は増えた印象です。このまま参加者が増えていくことを願っています。
引き続き ABC の問題を紹介していきます。