提出 #6354746


ソースコード 拡げる

import sys
input = sys.stdin.readline
from heapq import *

N,K,Q = map(int,input().split())
A = [int(x) for x in input().split()] # 大小逆にする。

# 通行止めを削除していって、区間をマージしていく
# 右端・左端が相互参照できるようにしておく
R_to_L = [None] * (N+10)
L_to_R = [None] * (N+10)
# 区間の左端に、残すK-1個のheapを入れる
rest = [[] for _ in range(N+10)]

from_max = sorted(enumerate(A), key = lambda x: x[1], reverse=True)

INF = 10 ** 18
get_reverse = [-INF] * Q

def push_K(arr,x):
    if len(arr) < K-1:
        heappush(arr,x)
    else:
        y = heappushpop(arr,x)
        # y が獲得できるようになる
        heappushpop(get_reverse, -y)

answer = INF
for i,x in from_max:
    left = R_to_L[i-1]
    right = L_to_R[i+1]
    # x 自身が採用できるか
    if left is None:
        left = i
        push_K(rest[left],x)
    else:
        push_K(rest[left],x)
    if right is None:
        right = i
    else:
        # merge
        for r in rest[i+1]:
            push_K(rest[left],r)
    R_to_L[right] = left
    L_to_R[left] = right
    score = -get_reverse[0] - x
    if answer > score:
        answer = score

print(answer)

提出情報

提出日時
問題 E - Range Minimum Queries
ユーザ maspy
言語 Python (3.4.3)
得点 600
コード長 1275 Byte
結果 AC
実行時間 248 ms
メモリ 9460 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 600 / 600
結果
AC × 3
AC × 54
セット名 テストケース
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt, subtask_1_35.txt, subtask_1_36.txt, subtask_1_37.txt, subtask_1_38.txt, subtask_1_39.txt, subtask_1_40.txt, subtask_1_41.txt, subtask_1_42.txt, subtask_1_43.txt, subtask_1_44.txt, subtask_1_45.txt, subtask_1_46.txt, subtask_1_47.txt, subtask_1_48.txt
ケース名 結果 実行時間 メモリ
sample_01.txt AC 18 ms 3064 KiB
sample_02.txt AC 18 ms 3064 KiB
sample_03.txt AC 18 ms 3064 KiB
subtask_1_01.txt AC 18 ms 3064 KiB
subtask_1_02.txt AC 18 ms 3064 KiB
subtask_1_03.txt AC 23 ms 3444 KiB
subtask_1_04.txt AC 18 ms 3064 KiB
subtask_1_05.txt AC 18 ms 3064 KiB
subtask_1_06.txt AC 19 ms 3188 KiB
subtask_1_07.txt AC 22 ms 3444 KiB
subtask_1_08.txt AC 25 ms 3572 KiB
subtask_1_09.txt AC 23 ms 3444 KiB
subtask_1_10.txt AC 21 ms 3316 KiB
subtask_1_11.txt AC 25 ms 3572 KiB
subtask_1_12.txt AC 23 ms 3572 KiB
subtask_1_13.txt AC 24 ms 3572 KiB
subtask_1_14.txt AC 26 ms 3572 KiB
subtask_1_15.txt AC 25 ms 3572 KiB
subtask_1_16.txt AC 25 ms 3700 KiB
subtask_1_17.txt AC 23 ms 3572 KiB
subtask_1_18.txt AC 22 ms 3572 KiB
subtask_1_19.txt AC 22 ms 3572 KiB
subtask_1_20.txt AC 37 ms 3956 KiB
subtask_1_21.txt AC 22 ms 3572 KiB
subtask_1_22.txt AC 23 ms 3572 KiB
subtask_1_23.txt AC 24 ms 3572 KiB
subtask_1_24.txt AC 23 ms 3572 KiB
subtask_1_25.txt AC 23 ms 3572 KiB
subtask_1_26.txt AC 25 ms 3572 KiB
subtask_1_27.txt AC 23 ms 3572 KiB
subtask_1_28.txt AC 32 ms 3700 KiB
subtask_1_29.txt AC 31 ms 3828 KiB
subtask_1_30.txt AC 23 ms 3572 KiB
subtask_1_31.txt AC 25 ms 3572 KiB
subtask_1_32.txt AC 25 ms 3572 KiB
subtask_1_33.txt AC 28 ms 3700 KiB
subtask_1_34.txt AC 28 ms 3700 KiB
subtask_1_35.txt AC 27 ms 3572 KiB
subtask_1_36.txt AC 28 ms 3700 KiB
subtask_1_37.txt AC 24 ms 3572 KiB
subtask_1_38.txt AC 24 ms 3572 KiB
subtask_1_39.txt AC 203 ms 8180 KiB
subtask_1_40.txt AC 248 ms 9460 KiB
subtask_1_41.txt AC 27 ms 3700 KiB
subtask_1_42.txt AC 25 ms 3572 KiB
subtask_1_43.txt AC 27 ms 3572 KiB
subtask_1_44.txt AC 27 ms 3700 KiB
subtask_1_45.txt AC 23 ms 3572 KiB
subtask_1_46.txt AC 22 ms 3572 KiB
subtask_1_47.txt AC 28 ms 3700 KiB
subtask_1_48.txt AC 28 ms 3700 KiB