yukicoder contest 309 参戦記
A 1642 Registration
自分が使っている言語の書式指定子を知っているかだけですね.
N = int(input())
print('%03d' % N)
B 1643 Not Substring
文字列を辞書順に並べると、'a', 'aa', 'aaa', 'aaaa', ... となる. 後は 'a' を幾つ並べるとSの部分列では無くなるかを考えれば 'a' の個数を数えて、それより1つ長くすればいいと分かるはず.
S = input()
print('a' * (S.count('a') + 1))
C 1644 Eight Digits
8! ≒ 4.0×104 なので、総当りしても TLE しないので、総当たりすれば良いと分かる.
from itertools import permutations
K = int(input())
result = 0
for p in permutations('12345678'):
if int(''.join(p)) % K == 0:
result += 1
print(result)
D 1645 AB's abs
N≦100で、Ai≦100なのを見たらナップサック問題かなってなりますよね.
from collections import defaultdict
m = 998244353
N, *A = map(int, open(0).read().split())
d = {0: 1}
for a in A:
t = defaultdict(int)
for k in d:
t[k + a] += d[k]
t[k + a] %= m
t[k - a] += d[k]
t[k - a] %= m
d = t
result = 0
for k in d:
result += abs(k) * d[k]
result %= m
print(result)