結果
問題 | No.942 プレゼント配り |
ユーザー | pekempey |
提出日時 | 2019-12-05 01:40:48 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 166 ms / 2,000 ms |
コード長 | 985 bytes |
コンパイル時間 | 547 ms |
コンパイル使用メモリ | 82,032 KB |
実行使用メモリ | 113,536 KB |
最終ジャッジ日時 | 2024-12-15 00:22:42 |
合計ジャッジ時間 | 3,762 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 18 |
ソースコード
import sys N, K = map(int, input().split()) if N == 1 and K == 1: print('Yes') print('1') sys.exit() if N * (N + 1) // 2 % K != 0 or N // K == 1: print('No') sys.exit() layer = [[j + 1 for j in range(K * i, K * (i + 1))] for i in range(N // K)] s = N * (N + 1) // 2 // K print('Yes') if N // K % 2 == 0: ans = [[] for i in range(K)] for i in range(N // K): if i % 2 == 0: for j in range(K): ans[j].append(layer[i][j]) else: for j in range(K): ans[j].append(layer[i][-1 - j]) for i in range(K): print(*ans[i]) else: ans = [[] for i in range(K)] for i in range(N // K - 3): if i % 2 == 0: for j in range(K): ans[j].append(layer[i][j]) else: for j in range(K): ans[j].append(layer[i][-1 - j]) layer = layer[-3:] for i in range(K): ans[i].append(layer[0][i]) ans[i].append(layer[1][(i + K // 2) % K]) for i in range(K): ans[i].append(s - sum(ans[i])) print(*ans[i])