PYTHON
CHR_Virtual_12の解説的なやつ
公開日:
2022/04/14
CHR_Virtual_12の解説的なやつ

CHR_Virtual_12

1

あまりを求めると楽かも

n = int(input())
if n % 100 > 0:
    print(n // 100 + 1)
else:
    print(n // 100)

2

cでsを作れるかどうかで場合分けすると、良いかも

s, c = map(int, input().split())
if s >= c // 2:
    print(c // 2)
else:
    print(s + (c - 2 * s) // 4)

3

?,後で考えます
O(N^2)になる、意味不明

解説ACしました
後ろから決めていくと、無駄なく出来る
O(N^2)にならない証明?がきになる人はこれを見ると良いかも偉大なるけんちょんさんの解説

n = int(input())
a = list(map(int, input().split()))
ans = [0] * n
for i in reversed(range(1, n + 1)):
    total = 0
    for j in range(i, n + 1, i):
        if ans[j - 1]:
            total += 1
    if a[i - 1] == total % 2:
        continue
    ans[i - 1] = 1
res = [_ + 1 for _ in range(n) if ans[_]]
print(len(res))
if len(res) != 0:
    print(*res)

4

dequeを使うと一瞬(Pythonはスタックの場合もリストよりもdequeの方が早かったはず)

from collections import deque

X = input()
d = deque("a")  # 適当な文字
for x in X:
    pre = d.pop()
    if pre == "S" and x == "T":
        continue
    d.append(pre)
    d.append(x)
print(len(d) - 1)

dequeの方が圧倒的に楽だが、使わなくても解ける

x = input()
n = len(x)
s = 0
for i in range(n):
    if x[i] == "S":
        s += 1
    else:
        if s >= 1:
            s -= 1
            n -= 2
print(n)

5

わからない、後で考えます

loading...