【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')

ABC308 B – Default Price

問題

解説

\(C_{i}\) の皿の色が\(D_{1}\), \(\cdots\), \(D_{M}\) の中にあるか判定し、なければ \(P_{0}\) 円となるように処理する。

解説

まず入力を受け取ります。

n,m=map(int,input().split())
c=list(input().split())
d=list(input().split())
p=list(map(int,input().split()))

出力する解答の初期値を0とします。

ans=0

flag=Falseと置いておき、\(C_{i}\) の皿の色が \(D_{1}\), \(\cdots\), \(D_{M}\) の中にあればansに \(P_{i+1}\) を足し、flag=Trueとします。
flag=Falseの時は、すべての色と異なっているので、ansに \(P_{0}\) を足します。

for i in range(n):
    flag=False
    for j in range(m):
        if c[i]==d[j]:
            ans+=p[j+1]
            flag=True
    if not(flag):
        ans+=p[0]

最後に結果を出力します。

print(ans)

解答

n,m=map(int,input().split())
c=list(input().split())
d=list(input().split())
p=list(map(int,input().split()))
ans=0
for i in range(n):
    flag=False
    for j in range(m):
        if c[i]==d[j]:
            ans+=p[j+1]
            flag=True
    if not(flag):
        ans+=p[0]
print(ans)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次