結果
| 問題 |
No.489 株に挑戦
|
| ユーザー |
|
| 提出日時 | 2017-02-25 01:13:59 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,127 bytes |
| コンパイル時間 | 231 ms |
| コンパイル使用メモリ | 12,288 KB |
| 実行使用メモリ | 16,384 KB |
| 最終ジャッジ日時 | 2025-01-03 08:18:13 |
| 合計ジャッジ時間 | 10,836 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 24 WA * 11 |
ソースコード
from copy import deepcopy as dcopy
import bisect
def main():
N,D,K = map(int, input().split())
values = [int(input()) for i in range(N)]
h_window = dcopy(values[:D])
h_window.sort()
minimum = min(values[:D])
w_min_index = values[:D].index(minimum)
min_index = values[:D].index(minimum)
maximum = max(values[:D+1])
max_index = values[:D+1].index(maximum)
MAX = maximum - minimum
for j in range(D+1, N):
del h_window[bisect.bisect_left(h_window, values[j-D-1])]
if len(h_window) == 0:
w_min_index = j-1
elif values[j-1] < h_window[0]:
w_min_index = j-1
bisect.insort(h_window, values[j-1])
minimum = h_window[0]
tmp = values[j] - minimum
if tmp > MAX:
MAX = tmp
max_index = j
min_index = w_min_index
# print(MAX, min_index, max_index)
if MAX <= 0:
print(0)
else:
print(K*MAX)
print(min_index, max_index)
if __name__ == "__main__": # {{{
try:
import test
test.test()
except:
main() # }}}