結果
問題 |
No.1536 仕切り直し
|
ユーザー |
![]() |
提出日時 | 2021-10-23 13:43:19 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,146 bytes |
コンパイル時間 | 269 ms |
コンパイル使用メモリ | 82,260 KB |
実行使用メモリ | 67,080 KB |
最終ジャッジ日時 | 2024-09-25 04:46:16 |
合計ジャッジ時間 | 2,669 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 4 WA * 6 |
ソースコード
n,m = map(int,input().split()) a = list(map(int,input().split())) from collections import defaultdict d_minus,d_plus = defaultdict(int),defaultdict(int) if a[0] >= 0:turn = -1 else:turn = 1 idx = 0 lan = [] for i in range(n): if turn * a[i] >= 0: lan[len(lan)-1][0] += a[i] else: turn *= -1 # if turn == 1: # d_plus[] # else: if len(lan) != 0: lan[len(lan)-1].append(i) lan.append([a[i],i]) lan[-1].append(n) lan.sort(key = lambda x:x[0]) ans = [] for val,l,r in lan: if val < 0: m -= 2 ans.append(l) ans.append(r) if r == n: m += 1 if m >=0: for i in range(m): ans.append(n) for idx in ans: print(idx) else: not_ans = set() for val,l,r in lan: if val >= 0: if r != n : not_ans.add(r) m += 1 if l == 0: continue not_ans.add(l) m += 1 if m >= 0: break if m == 1: ans.append(n) for idx in ans: if not idx in not_ans: print(idx)