【AtCoder】ABC308解説(Python)

CodeQUEEN 2023 予選 (AtCoder Beginner Contest 308)の解説記事です。

ABC308 A – New Scheme

問題

問題文の要約は以下の通りです。

問題の要約

8個の整数 \(S_{1}\), \(S_{2}\), \(\cdots\), \(S_{8}\) を与えたとき、以下の3つの条件がすべて満たされているならば Yes を、そうでないならば No を出力せよ。
・\(S_{1} \le S_{2} \le \cdots \le S_{8}\)
・\(S_{1}\), \(S_{2}\), \(\cdots\), \(S_{8}\) はすべて100以上675以下である。
・\(S_{1}\), \(S_{2}\), \(\cdots\), \(S_{8}\) はすべて25の倍数である。

制約

・\(1 \le S_{i} \le 1000\)
・入力は全て整数

入力

\(S_{1}\) \(S_{2}\) \(\cdots\) \(S_{8}\)

出力

答えを出力せよ。

解法

3つの条件を順番に判定する。

解説

まず入力 \(S\) をlistとして受け取ります。

S=list(map(int,input().split()))

\(S\) の大小を比べるために \(S_{i-1}\) の値を格納しておくための変数を用意します。
\(1 \le S_{i}\) なので初期値は0としておきます。

tmp=0

3つの条件をすべて満足したときは、tmpに \(S_{i}\) を格納し、どれか一つでも満たさないときはNo を出力し終了します。
全ての \(S\) が条件を満たしたとき、Yesを出力します。

for i in range(8):
  if tmp<=S[i] and 100<=S[i]<=675 and S[i]%25==0:
    tmp=S[i]
  else:
    print('No')
    exit()
print('Yes')

解答

S=list(map(int,input().split()))
tmp=0
for i in range(8):
  if tmp<=S[i] and 100<=S[i]<=675 and S[i]%25==0:
    tmp=S[i]
  else:
    print('No')
    exit()
print('Yes')
1 2
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!