D - Least Unbalanced Editorial by sounansya


以下のように構築することもできます。

  • \(A\) の要素を全て \(\displaystyle \left\lfloor\frac{K}{2^N}\right\rfloor\) にし、\(K\)\(K \bmod 2^N\) に置き換える。
  • \(k=0,1,\ldots,K-1\) に対し、 \(\displaystyle A_{\left\lfloor 2^N\times \frac{k}{K}\right\rfloor}\)\(1\) 加算する。

実装例(Python3)

n, k = map(int, input().split())
a = [k >> n] * (1 << n)
k %= 1 << n
for i in range(k):
    a[(i << n) // k] += 1
print(1 if k else 0)
print(*a)

posted:
last update: