사다리 게임
시간 제한1초메모리 제한128 MB
수직선 n개와 가로대 m개로 이루어진 사다리 게임에서 가로대를 최대 하나 지워 왼쪽 k개 수직선에서 도착하는 점수 합의 최솟값을 구한다.
문제
상근이는 사다리 게임을 하고 있다. 사다리는 개의 세로줄과 개의 가로 막대로 이루어져 있다. 세로줄에는 왼쪽에서 오른쪽으로 번부터 번까지 번호가 붙어 있고, 세로줄 의 맨 아래에는 양의 정수 가 적혀 있다.
세로줄 의 맨 위에서 출발하여 사다리를 따라 내려가면 맨 아래의 어떤 칸에 도착하는데, 그 칸에 적혀 있는 점수가 세로줄 를 선택했을 때 얻는 점수이다.
상근이는 왼쪽에서부터 연속된 세로줄, 즉 세로줄 번부터 세로줄 번까지를 선택한다. 선택한 세로줄들에서 얻는 점수의 합이 상근이의 점수가 된다.
상근이는 가로 막대를 최대 한 개까지 지울 수 있다. 막대를 하나 지운 경우에는, 그 막대를 지운 뒤의 사다리를 기준으로 각 세로줄의 도착 칸을 다시 계산한다.
사다리의 모양과 선택한 세로줄의 수 가 주어질 때, 상근이가 얻을 수 있는 가장 작은 점수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 세로줄의 개수 (), 가로 막대의 개수 (), 사다리의 세로 길이 (), 상근이가 선택한 세로줄의 수 ()가 주어진다.
다음 개의 줄에는 각 세로줄의 맨 아래에 적힌 점수 가 한 줄에 하나씩 주어진다. ()
다음 개의 줄에는 각 막대의 위치를 나타내는 두 정수 와 가 주어진다. (, ) 번째 막대는 세로줄 과 세로줄 을 연결하며, 사다리의 맨 위에서부터의 거리는 이다.
출력
첫째 줄에 상근이가 얻을 수 있는 최소 점수를 출력한다.