結果
| 問題 |
No.489 株に挑戦
|
| ユーザー |
|
| 提出日時 | 2017-02-25 01:12:45 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,470 bytes |
| コンパイル時間 | 210 ms |
| コンパイル使用メモリ | 12,416 KB |
| 実行使用メモリ | 150,160 KB |
| 最終ジャッジ日時 | 2025-01-03 08:06:56 |
| 合計ジャッジ時間 | 69,893 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | TLE * 3 |
| other | TLE * 35 |
ソースコード
from scipy import integrate
import re
from operator import itemgetter
from collections import defaultdict as dd
from collections import Counter
from collections import deque
from collections import namedtuple
import numpy as np
import fractions
import math
from copy import deepcopy as dcopy
import heapq
from math import cos, sin, radians
import itertools
from heapq import *
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() # }}}