아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

컨퍼런스

면접 대비

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

요약
발표회별 티켓 가격, 방 정원과 임대료, 예약 묶음이 주어질 때 취소할 티켓 수를 정해 수익에서 임대료를 뺀 값을 최대화한다.
난이도

보통10점 중 6점

유형
동적 계획법, 그리디, 정렬
정답자
아직 제출이 없습니다

문제

바이트타운에서 해마다 열리는 그레이트 바이토닉 컨퍼런스 준비가 한창이다. 전통에 따라 mm개의 발표가 모두 정확히 같은 시각에 진행된다. 모든 발표는 동일한 형태의 방에서 열리며, 방 하나에는 최대 kk명이 들어갈 수 있다. 방은 언제나 충분히 많다. 어떤 발표에 nn명이 참석하면 그 발표에는 ⌈n/k⌉\lceil n/k \rceil개의 방이 필요하다.

주최 측은 이익을 최대로 만들고 싶다. 이익은 티켓 판매 수입에서 방 대여 비용을 뺀 값이다. 정원이 kk인 방 하나를 빌리는 비용은 ss이고, ii번째 발표의 티켓 한 장 가격은 cic_i이다. 티켓 가격은 방을 ⌊k/2⌋\lfloor k/2 \rfloor명으로 채우기만 해도 이익이 음수가 아니도록 정해져 있다(그보다 적은 인원으로도 이익이 날 수 있다). 주최 측은 예약된 티켓 중 일부를 취소해 이익을 높일 수 있다.

티켓 가격, 방 정원, 방 대여 비용, 그리고 모든 예약이 주어질 때, 예약된 티켓 중 일부를 취소해 얻을 수 있는 최대 이익을 구하여라.

여기서 ⌈x⌉\lceil x \rceil는 xx보다 작지 않은 가장 작은 정수, ⌊x⌋\lfloor x \rfloor는 xx보다 크지 않은 가장 큰 정수를 뜻한다.

입력

첫째 줄에 네 정수 mm, ll, kk, ss가 공백으로 구분되어 주어진다 (1≤m≤1001 \le m \le 100, 2≤l≤1,000,0002 \le l \le 1{,}000{,}000, 2≤k≤4002 \le k \le 400, 1≤s≤1,0001 \le s \le 1{,}000). 각각 발표의 수, 예약의 수, 방 하나의 정원, 방 하나의 대여 비용이다.

둘째 줄에 mm개의 정수 c1,…,cmc_1, \dots, c_m이 주어지며, 모든 ii에 대해 ci⋅⌊k/2⌋≥sc_i \cdot \lfloor k/2 \rfloor \ge s이고 ci≤sc_i \le s이다. cic_i는 ii번째 발표(11번부터 mm번까지 번호가 매겨짐)의 티켓 가격이다.

이어지는 ll개의 줄에는 각각 두 정수 pip_i와 rir_i가 주어진다 (1≤pi≤m1 \le p_i \le m, 1≤ri≤1,0001 \le r_i \le 1{,}000). 이는 pip_i번 발표에 대한 rir_i장의 예약을 뜻한다. 한 예약 안에서 전체가 아니라 원하는 만큼의 티켓만 취소할 수도 있다.

출력

예약된 티켓 중 일부를 취소해 얻을 수 있는 최대 이익(티켓 수입에서 방 대여 비용을 뺀 값)을 정수 하나로 출력한다.

설명

첫 번째 예제에는 티켓 가격이 각각 77, 1010, 88인 발표 33개가 있고, 방 정원은 1010, 방 대여 비용은 3030이다. 11번 발표에는 99장이 예약되어 있어 방 하나로 처리하면 이익은 7⋅9−30=337 \cdot 9 - 30 = 33이다. 33번 발표에는 1313장이 예약되어 있는데, 1313장을 모두 남기면 방이 두 개 필요하다. 대신 1010장만 남겨 방 하나를 꽉 채우는 편이 더 이득이므로 33장을 취소하며, 이익은 8⋅10−30=508 \cdot 10 - 30 = 50이다. 전체 이익은 33+50=8333 + 50 = 83이다.

예제3

  1. 예제 1

    입력
    3 2 10 30
    7 10 8
    1 9
    3 13
    
    예상 출력
    83
    
  2. 예제 2

    입력
    1 2 10 30
    7
    1 8
    1 7
    
    예상 출력
    45
    
  3. 예제 3

    입력
    1 2 10 30
    6
    1 2
    1 2
    
    예상 출력
    0