AtCoder が提供しているABC(AtCoder Beginner Contest)307 のA問題をC++とPythonで解いてみました。ABC307は、2023年6月24日21:00に実施されました。
AtCoder の紹介はこちらに、プログラミングの方針はこちらに記事があります。
A問題 Weekly Records(Difficulty : 10)
問題はリンク先をご覧ください。
繰り返し文で7個毎の総和を求める問題です。AtCoder Problems による Difficulty は 10 でした。
解答案
C++ プログラム例(ABC307A)
与えられた N 回、以下を繰り返します。
- 7個の和を求める(16行目)。
- その和を出力する(18行目)。
以下が、C++プログラムとなります。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
vector<int> a(7 * n);
for (int i = 0; i < 7 * n; ++i) {
cin >> a[i];
}
for (int i = 0; i < n; ++i) {
int sum = 0;
for (int j = 0; j < 7; ++j) {
sum += a[i * 7 + j];
}
cout << sum << " ";
}
cout << endl;
return 0;
}
AC(Accepted=正しいプログラム)と判定されました。
Python プログラム例(ABC307A)
Python 版は、7個毎の和を変数 result に格納して、後でまとめて出力しています(10、12行目)。
"""AtCoder Beginner Contest 307 A"""
n = int(input())
a = list(map(int, input().split()))
result = []
for i in range(n):
s = 0
for j in range(7):
s += a[i * 7 + j]
result.append(s)
print(*result)
こちらも「AC」と判定されました。
最後に
AtCoder から、2023年4月から6月にかけて発生した障害報告書が公開されました。報告書から、コンテスト時には1000台以上のジャッジサーバーが動いていることが分かりました。質問から、今回もダウンタイムはあったようですが、コンテスト自体は無事に終了しました。運営のみなさまに感謝したいと思います。
障害報告書は、記事として紹介しようと考えています。
引き続き ABC の問題を紹介していきます。