【AtCoder】ABC358解説(Python)

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)  
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次