【AtCoder】ABC308解説(Python)

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