結果
問題 |
No.625 ソンタクロース
|
ユーザー |
![]() |
提出日時 | 2018-08-07 13:55:19 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 157 ms / 4,000 ms |
コード長 | 870 bytes |
コンパイル時間 | 69 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 11,008 KB |
最終ジャッジ日時 | 2024-09-19 18:25:28 |
合計ジャッジ時間 | 1,897 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 |
ソースコード
N,M = map(int,input().split()) santa = [] for i in range(1,N+1): point = i//2+1 get_p = 1 m = M tmp = santa[:] for j in range(len(santa)): if tmp[j]==-1: tmp[j]=0 get_p+=1 elif tmp[j]==0: tmp[j]=1 get_p+=1 m-=1 else: tmp[j]=0 num = 1 while get_p<point: for j in range(len(tmp)-1,-1,-1): if tmp[j]==0 and santa[j]==num: tmp[j] = num+1 m -= num+1 get_p+=1 break else: num+=1 while get_p>point: for j in range(get_p-point): max_m = max(tmp) tmp[tmp.index(max_m)]=0 get_p-=1 m+=max_m if m<0: santa.insert(0,-1) else: santa = [m]+tmp[:] print(*santa)