🔖
AtCoder ABC227 個人的メモ
A - Last Card
愚直にシミュレーション
N, K, A = map(int, input().split())
ans = A - 1
for _ in range(K):
ans += 1
ans %= N + 1
ans = max(1, ans)
print(ans)
B - KEYENCE building
なので、その範囲で
そしてそれぞれの
N = int(input())
S = list(map(int, input().split())) # 整数を入力
lst = set()
for a in range(1, 1000):
for b in range(1, 1000):
res = 4 * a * b + 3 * a + 3 * b
lst.add(res)
ans = 0
for s in S:
if s not in lst:
ans += 1
print(ans)
参考
set in の計算量
C - ABC conjecture
同様に
よって、
計算量はまぁ大体いいでしょと思ったら大丈夫だった。
N = int(input())
ans = 0
for a in range(1, N + 1):
if a ** 3 > N:
break
for b in range(a, N + 1):
if a * b * b > N:
break
c = N // (a * b)
ans += max(0, c - b + 1)
print(ans)
参考
調和級数の話
D - Project Planning
解は最大で
N, K = map(int, input().split())
A = list(map(int, input().split())) # 整数を入力
ok = 0
ng = 10 ** 18
while abs(ok - ng) > 1:
mid = (ok + ng) // 2
res = sum(min(mid, a) for a in A)
if mid * K <= res:
ok = mid
else:
ng = mid
print(ok)
Discussion