사다리 게임

시간 제한1초메모리 제한128 MB

요약
수직선 n개와 가로대 m개로 이루어진 사다리 게임에서 가로대를 최대 하나 지워 왼쪽 k개 수직선에서 도착하는 점수 합의 최솟값을 구한다.
난이도

어려움10점 중 8점

유형
구현, 시뮬레이션, 배열, 정렬
정답자
아직 제출이 없습니다

문제

상근이는 사다리 게임을 하고 있다. 사다리는 nn개의 세로줄과 mm개의 가로 막대로 이루어져 있다. 세로줄에는 왼쪽에서 오른쪽으로 11번부터 nn번까지 번호가 붙어 있고, 세로줄 ii의 맨 아래에는 양의 정수 sis_i가 적혀 있다.

세로줄 ii의 맨 위에서 출발하여 사다리를 따라 내려가면 맨 아래의 어떤 칸에 도착하는데, 그 칸에 적혀 있는 점수가 세로줄 ii를 선택했을 때 얻는 점수이다.

상근이는 왼쪽에서부터 연속된 세로줄, 즉 세로줄 11번부터 세로줄 kk번까지를 선택한다. 선택한 세로줄들에서 얻는 점수의 합이 상근이의 점수가 된다.

상근이는 가로 막대를 최대 한 개까지 지울 수 있다. 막대를 하나 지운 경우에는, 그 막대를 지운 뒤의 사다리를 기준으로 각 세로줄의 도착 칸을 다시 계산한다.

사다리의 모양과 선택한 세로줄의 수 kk가 주어질 때, 상근이가 얻을 수 있는 가장 작은 점수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 세로줄의 개수 nn (2≤n≤10002 \le n \le 1000), 가로 막대의 개수 mm (1≤m≤100 0001 \le m \le 100\,000), 사다리의 세로 길이 hh (2≤h≤10002 \le h \le 1000), 상근이가 선택한 세로줄의 수 kk (1≤k≤n1 \le k \le n)가 주어진다.

다음 nn개의 줄에는 각 세로줄의 맨 아래에 적힌 점수 sis_i가 한 줄에 하나씩 주어진다. (s1+s2+⋯+sn≤2×109s_1 + s_2 + \cdots + s_n \le 2 \times 10^9)

다음 mm개의 줄에는 각 막대의 위치를 나타내는 두 정수 aia_i와 bib_i가 주어진다. (1≤ai≤n−11 \le a_i \le n-1, 1≤bi≤h−11 \le b_i \le h-1) ii번째 막대는 세로줄 aia_i과 세로줄 ai+1a_i+1을 연결하며, 사다리의 맨 위에서부터의 거리는 bib_i이다.

출력

첫째 줄에 상근이가 얻을 수 있는 최소 점수를 출력한다.

예제2

  1. 예제 1

    입력
    4 5 7 2
    20
    80
    100
    50
    1 1
    2 6
    2 3
    1 5
    3 1
    
    예상 출력
    100
    
  2. 예제 2

    입력
    2 2 5 1
    10
    20
    1 1
    1 3
    
    예상 출력
    10