ABC156に参加した。
AtCoder Beginner Contest 156 - AtCoder
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.
A – Beginner
普通の1次方程式。
n, r = map(int, input().split())
if n >= 10:
print(r)
else:
print(r + 1000 - 100 * n)
B – Digits
10進数をK進数にすると、Kで割れる回数+1桁になる。
n, k = map(int, input().split())
cnt = 0
while n // k != 0:
cnt += 1
n /= k
print(cnt + 1)
C – Rally
N<=100なので全探索で間に合う。
import numpy as np
n = int(input())
x = np.array([int(x) for x in input().split()])
ans = 10 ** 10
for i in range(1, 101):
temp = x - i
ans = min(ans, sum([j ** 2 for j in temp]))
print(ans)
D – Bouquet
答えが 2^n – 1 – nCa – nCb になるのは分かったが、2^nとnCkを高速に求める方法を知らなかった。
Cまでの3完で終了。
追記
以下の記事でD問題を解いた。
コメント