u++の備忘録

AtCoder「日立製作所 社会システム事業部 プログラミングコンテスト2020」をPythonで解く

久しぶりにAtCoderのコンテストに参加しました。A, B問題の2完でした。

f:id:upura:20200308214354p:plain

atcoder.jp

A - Hitachi String(100点)

  • 「Sの長さは1以上10以下」なので、hitachi文字列は高々5通りです
S = input()
hitachi = [
    'hi',
    'hihi',
    'hihihi',
    'hihihihi',
    'hihihihihi',
]
if S in hitachi:
    print('Yes')
else:
    print('No')

B - Nice Shopping(200点)

  • 割引券を使った場合 + (割引券を1枚使った場合) * M の全M+1通りを試して、最小値が答え
A, B, M = list(map(int, input().split()))
a = list(map(int, input().split()))
b = list(map(int, input().split()))
X = [list(map(int, input().split())) for i in range(M)]

ans = [min(a) + min(b)]
for x in X:
    a_idx, b_index, c = x
    ans.append(a[a_idx - 1] + b[b_index - 1] - c)

print(min(ans))