結果
問題 | No.625 ソンタクロース |
ユーザー |
![]() |
提出日時 | 2018-08-03 13:46:03 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 194 ms / 4,000 ms |
コード長 | 1,139 bytes |
コンパイル時間 | 115 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 11,008 KB |
最終ジャッジ日時 | 2024-09-19 17:21:24 |
合計ジャッジ時間 | 2,129 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 |
ソースコード
n,m = map(int,input().split())lst = [m]tmp = []def opposite():lst.insert(0,-1)for i in range(2,n+1):p = (i+2)//2get_p = 1use_m = 0tmp = []over0 = []for j in range(i-1):apd = 0if lst[j]==0:get_p+=1use_m+=1apd = 1elif lst[j]==-1:get_p+=1else:over0.append(lst[j])tmp.append(apd)if get_p>p:get_p -= pp = get_puse_m -= pfor j in range(p):for k in range(i-1):if tmp[k]==1:tmp[k]=0breakif get_p==p:if use_m<=m:lst = [m-use_m]+tmp[:]else:opposite()continuep -= get_pover0.sort()if m < use_m+sum(over0[:p])+p:opposite()else:for j in range(p):for l in range(i-2,-1,-1):if lst[l]==1:lst[l] = 2tmp[l] = lst[l]use_m += lst[l]breaklst = [m-use_m]+tmp[:]print(*lst)