結果
問題 | No.489 株に挑戦 |
ユーザー |
![]() |
提出日時 | 2023-08-02 12:26:03 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 298 ms / 1,000 ms |
コード長 | 1,104 bytes |
コンパイル時間 | 300 ms |
コンパイル使用メモリ | 82,500 KB |
実行使用メモリ | 151,220 KB |
最終ジャッジ日時 | 2024-10-12 07:50:11 |
合計ジャッジ時間 | 7,244 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 35 |
ソースコード
from heapq import *from collections import *import sysinput = sys.stdin.readlineclass QuasiBinaryTree:def __init__(self, rule="min"):if rule == "max":self.pm = -1else:self.pm = 1self.inf = 10**18self.P = [self.inf]self.Q = []def insert(self, x):heappush(self.P, x * self.pm)def erase(self, x):heappush(self.Q, x * self.pm)def top(self):while self.Q and (self.P[0] == self.Q[0]):heappop(self.P)heappop(self.Q)return self.P[0] * self.pmN, D, K = map(int, input().split())Q = defaultdict(deque)T = QuasiBinaryTree()ansval, ansind = 0, NoneX = [0] * Nfor i in range(N):X[i] = int(input())for i in range(N):T.insert(X[i])Q[X[i]].append(i)if i >= D + 1:T.erase(X[i - D - 1])Q[X[i - D - 1]].popleft()temp = X[i] - T.top()if temp > ansval:ansval = tempj = Q[T.top()][0]ansind = (j, i)if ansind:print(K * ansval)print(*ansind)else:print(0)