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

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

ABC189 - A.Slot

AtCoder公式 | ABC189 - A.Slot

解答

ccc = input()
print('Won' if len(set(ccc)) == 1 else 'Lost')

別解

ccc = input()
print('Won' if ccc[0] == ccc[1] == ccc[2] else 'Lost')

要点解説メモ

  • cccをリストとして考えて、要素がすべて同じであることを確認すれば良い
  • いろんな書き方がありそう

ABC189 - B.Alcoholic

AtCoder公式 | ABC189 - B.Alcoholic

解答

n, x = map(int, input().split())
x *= 100
cnt = 0
ans = -1
for i in range(n):
    v, p = map(int, input().split())
    cnt += v * p
    if cnt > x:
        ans = i + 1
        break
print(ans)

要点解説メモ

  • floatの計算は誤差でるので100倍して計算するのが良さそう

ABC189 - C.

AtCoder公式 | ABC189 - C.

解答

n = int(input())
aaa = tuple(map(int, input().split()))
ans = 0

for l in range(n):
    min_a = aaa[l]
    for r in range(l, n):
        min_a = min(min_a, aaa[r])
        ans = max(ans, min_a * (r - l + 1))
print(ans)

要点解説メモ

  • 尺取り法の典型
  • 通常のpythonだと実行時間間に合わないのでpypyで出す(再帰関数以外は基本pypyのほうがはやい)

ABC189 - D.

AtCoder公式 | ABC189 - D.

解答

まだ解いていません

要点解説メモ