CodeQUEEN 2024 予選 (AtCoder Beginner Contest 358)の解説記事です。
目次
ABC358 A – Welcome to AtCoder Land
問題
問題文の要約は以下の通りです。
問題の要約
文字列 \(S\), \(T\) が空白区切りで与えられるので、 \(S=\)AtCoder
かつ \(T=\)Land
であるかどうか判定せよ。
解説
文字列を比較して一致しているかを確認する。
解説
まず入力を受け取ります。
# 入力
S,T=input().split()
S='AtCoder'
かつ T='Land'
であればYes
、そうでなければNo
を出力します。
# S='AtCoder' かつ T='Land' であれば'Yes'、そうでなければ'No'を出力
print('Yes' if S=='AtCoder' and T=='Land' else 'No')
解答
# 入力
S,T=input().split()
# S='AtCoder' かつ T='Land' であれば'Yes'、そうでなければ'No'を出力
print('Yes' if S=='AtCoder' and T=='Land' else 'No')
ABC358 B – Ticket Counter
問題
問題文の要約は以下の通りです。
問題の要約
1つのチケット売り場があり、来場者はその前に順番に並んでチケットを購入します。各人がチケットを購入するのには \(A\) 秒かかり、前の人が終わるとすぐに次の人が始めます。現在は列がなく、今から \(N\) 人が順番にやってきます。各人 \(i\) は \(T_i\) 秒後に到着し、既存の列があればその最後尾に並び、なければ直ちに購入手続きを始めます。各人 \(i\) がチケット購入を終えるまでにかかる時間を求めよ。
解説
各人が到着する時間と購入にかかる時間から、各人がチケット購入を終える時刻を計算する。
解説
まず入力を受け取ります。
# 入力
N, A = map(int, input().split())
T = list(map(int, input().split()))
現在の時間時刻ans
を初期値0
とします。
# 現在の時間時刻
ans = 0
現在の最後尾の人の終了時刻と、次の人の到着時刻の大きい方に購入時間Aを加えたものを出力します。
for i in range(N):
# 現在の最後尾の人の終了時刻と、次の人の到着時刻の大きい方に購入時間Aを加える
ans = max(ans, T[i]) + A
print(ans)
解答
# 入力
N, A = map(int, input().split())
T = list(map(int, input().split()))
# 現在の時間時刻
ans = 0
for i in range(N):
# 現在の最後尾の人の終了時刻と、次の人の到着時刻の大きい方に購入時間Aを加える
ans = max(ans, T[i]) + A
print(ans)