結果

問題 No.942 プレゼント配り
ユーザー pekempey
提出日時 2019-12-05 01:40:48
言語 PyPy3
(7.0.0)
結果
AC  
実行時間 284 ms
コード長 985 Byte
コンパイル時間 816 ms
使用メモリ 125,212 KB
最終ジャッジ日時 2020-01-13 06:06:00

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
01.txt AC 104 ms
78,260 KB
02.txt AC 276 ms
125,164 KB
03.txt AC 104 ms
78,592 KB
04.txt AC 108 ms
78,280 KB
05.txt AC 196 ms
85,112 KB
06.txt AC 284 ms
125,212 KB
07.txt AC 104 ms
78,280 KB
08.txt AC 108 ms
78,012 KB
09.txt AC 180 ms
83,728 KB
10.txt AC 200 ms
84,120 KB
11.txt AC 116 ms
78,424 KB
12.txt AC 116 ms
78,392 KB
13.txt AC 116 ms
78,244 KB
14.txt AC 108 ms
78,672 KB
15.txt AC 216 ms
96,748 KB
16.txt AC 172 ms
82,204 KB
17.txt AC 180 ms
82,316 KB
18.txt AC 176 ms
83,400 KB
sample_01.txt AC 104 ms
78,432 KB
sample_02.txt AC 108 ms
78,488 KB
テストケース一括ダウンロード

ソースコード

diff #
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])
0