結果
| 問題 | No.1419 Power Moves | 
| コンテスト | |
| ユーザー |  nephrologist | 
| 提出日時 | 2021-03-05 23:17:00 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 69 ms / 2,000 ms | 
| コード長 | 1,310 bytes | 
| コンパイル時間 | 158 ms | 
| コンパイル使用メモリ | 82,216 KB | 
| 実行使用メモリ | 77,236 KB | 
| 最終ジャッジ日時 | 2024-10-07 04:52:58 | 
| 合計ジャッジ時間 | 3,676 ms | 
| ジャッジサーバーID (参考情報) | judge4 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 31 | 
ソースコード
# for n in range(5):
#     kouho = []
#     for i in range(1 << n):
#         res = 0
#         for j in range(n):
#             if (i >> j) & 1:
#                 res += pow(2, j)
#             else:
#                 res -= pow(2, j)
#         kouho.append(res)
#     print(kouho)
mod = 10 ** 9 + 7
n, k = map(int, input().split())
ans = [0] * n
if n % 2:
    # 奇数
    rui = pow(2, k - 1, n * mod)
    num, rem = rui // n, rui % n
    for i in range(n):
        temp = (2 * i + 1) % n
        ans[temp] += 1
        ans[-temp] += 1
    for i in range(n):
        ans[i] *= num
    for i in range(rem):
        temp = (2 * i + 1) % n
        ans[temp] += 1
        ans[-temp] += 1
    inv = pow(2, k, mod)
    inv = pow(inv, mod - 2, mod)
    for a in ans:
        res = a % mod
        res *= inv
        print(res % mod)
else:
    # 奇数
    rui = pow(2, k - 1, n * mod)
    num, rem = rui // n, rui % n
    for i in range(n):
        temp = (2 * i + 1) % n
        ans[temp] += 1
        ans[-temp] += 1
    for i in range(n):
        ans[i] *= num
    for i in range(rem):
        temp = (2 * i + 1) % n
        ans[temp] += 1
        ans[-temp] += 1
    inv = pow(2, k, mod)
    inv = pow(inv, mod - 2, mod)
    for a in ans:
        res = a % mod
        res *= inv
        print(res % mod)
            
            
            
        