結果
問題 | No.942 プレゼント配り |
ユーザー | titia |
提出日時 | 2019-12-05 02:11:00 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 188 ms / 2,000 ms |
コード長 | 692 bytes |
コンパイル時間 | 200 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 21,888 KB |
最終ジャッジ日時 | 2024-12-15 04:23:07 |
合計ジャッジ時間 | 3,152 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 18 |
ソースコード
N,K=map(int,input().split()) if N==K==1: print("Yes") print(1) exit() if N*(N+1)//2%K!=0 or N==K: print("No") else: ANS=[[0]*(N//K) for i in range(K)] rest=N//K col=0 if rest%2==1: start=0 for i in range(K): ANS[i][0]=1+i for i in range(K): ANS[(i+K//2)%K][1]=K+i+1 for i in range(K): ANS[i][2]=3*(K*3+1)//2-ANS[i][0]-ANS[i][1] col+=3 for i in range(K): for j in range(col,rest): if j%2==0: ANS[i][j]=1+i+j*K else: ANS[i][j]=K-i+j*K print("Yes") for ans in ANS: print(*ans)