👌

[python]ARC108 個人的メモ[AtCoder]

2020/11/21に公開

ARC108

所感

a1完
arc108score

A - Sum and Product

N\times M = PとなるN,M\sqrt{P}以下となる
\sqrt{P}は最大でも2000ぐらいなので,Nを全探索すればNの候補が集まる
それらがN + M = Sを満たすかを全探索すればおk

#!/usr/bin/env python3
S, P = map(int, input().split())

res = []
for n in range(1, int(P ** 0.5) + 1):
    if P % n == 0:
        res.append(n)
        res.append(P // n)

ans = False
for n in res:
    if n + P // n == S:
        ans = True
        break

if ans:
    print("Yes")
else:
    print("No")

B - Abbreviate Fox

与えられた文字列Sを先頭文字から順に配列Tの末尾に加えていく
文字を加えた後,Tの後ろ3文字がfoxになっていたら,それらを削除する
これだけ

こんなの解けないとか泣きそう
精進します

#!/usr/bin/env python3
N = int(input())
S = input()

ans = N
res = []
for s in S:
    res.append(s)
    if res[-3:] == ["f", "o", "x"]:
        for _ in range(3):
            res.pop()
        ans -= 3

print(ans)

Discussion