ABC167 - Atcoder/Python精進のための解説メモ

カレンダーアイコン
2021/09/21

ABC167 - A.Registration

AtCoder公式 | ABC167 - A.Registration

解答

s = input()
t = input()
print('Yes' if s == t[:-1] else 'No')

要点解説メモ

  • シンプルに比較

ABC167 - B.Easy Linear Programming

AtCoder公式 | ABC167 - B.Easy Linear Programming

解答

a, b, c, k = map(int, input().split())
if k <= a:
    ans = k * 1
else:
    if k <= a + b:
        ans = a * 1
    else: 
        ans = a * 1 + (k - a - b) * (-1)
print(ans)

要点解説メモ

  • a,b,cの順にできるだけ、たくさん取るのが最適なので、場合分けする

ABC167 - C.Skill Up

AtCoder公式 | ABC167 - C.Skill Up

解答

n, m, x = map(int, input().split())
caaa = [list(map(int, input().split())) for _ in range(n)]
ans = 1e7

for bit in range(1 << n):
    caxax = [0] * (m + 1)

    for i, caa in enumerate(caaa):
        if (bit >> i) & 1:
            for j in range(m + 1):
                caxax[j] += caa[j]

    if all(x <= ax for ax in caxax[1:]):
        ans = min(ans, caxax[0])

print(-1 if ans == 1e7 else ans)

要点解説メモ

  • Mが高々12なので、買う本の組み合わせを全探索する

ABC167 - D.

AtCoder公式 | ABC167 - D.

解答

まだ解いていません

要点解説メモ