結果
問題 |
No.1536 仕切り直し
|
ユーザー |
![]() |
提出日時 | 2021-10-23 13:46:13 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,170 bytes |
コンパイル時間 | 335 ms |
コンパイル使用メモリ | 81,968 KB |
実行使用メモリ | 67,384 KB |
最終ジャッジ日時 | 2024-09-25 04:49:18 |
合計ジャッジ時間 | 2,461 ms |
ジャッジサーバーID (参考情報) |
judge3 / 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 -= 1 ans.append(l) if r != n: ans.append(r) m -= 1 # print(m) 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)