結果

問題 No.489 株に挑戦
ユーザー kjnho
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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()  # }}}

 
0