結果
| 問題 |
No.945 YKC饅頭
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2022-02-11 21:04:11 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 876 ms / 2,000 ms |
| コード長 | 1,539 bytes |
| コンパイル時間 | 219 ms |
| コンパイル使用メモリ | 81,792 KB |
| 実行使用メモリ | 132,672 KB |
| 最終ジャッジ日時 | 2024-06-27 16:16:44 |
| 合計ジャッジ時間 | 28,739 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 74 |
ソースコード
import heapq
class Heapq:
def __init__(self, lst = [], reverse = False):
if reverse:
self.pm = -1
self.hq = [-l for l in lst]
else:
self.pm = 1
self.hq = lst.copy()
heapq.heapify(self.hq)
self.tot = sum(lst)
self.rm = []
self.length = len(lst)
def push(self, x):
self.length += 1
heapq.heappush(self.hq, x * self.pm)
self.tot += x
def pop(self):
self.length -= 1
ret = heapq.heappop(self.hq)
self.tot -= self.pm * ret
self.delete()
return self.pm * ret
def top(self):
return self.pm * self.hq[0]
def remove(self, x): # 存在しないものを消そうとするとバグる
self.length -= 1
self.tot -= x
heapq.heappush(self.rm, self.pm * x)
self.delete()
def delete(self):
while self.rm and self.rm[0] == self.hq[0]:
heapq.heappop(self.rm)
heapq.heappop(self.hq)
n, m = map(int, input().split())
add = [[] for _ in range(n)]
rem = [[] for _ in range(n)]
T = [""] * m
for i in range(m):
l, r, t = input().split()
T[i] = t
add[int(l) - 1].append(i)
rem[int(r) - 1].append(i)
ans = {"Y":0, "K":0, "C":0}
hq = Heapq()
for i in range(n):
for j in add[i]:
hq.push(j)
if hq.length > 0:
t = T[hq.top()]
ans[t] += 1
for j in rem[i]:
hq.remove(j)
print(ans["Y"], ans["K"], ans["C"])