만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

채소

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

요약
상하는 채소를 하루에 최대 m개까지 팔 때, 각 질의 p일 동안 얻을 수 있는 최대 이익을 구합니다.
난이도

어려움10점 중 8점

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

문제

작은 N은 채소 창고의 관리자이며, 채소 판매 계획을 설계하는 책임을 맡고 있다.

창고에는 총 nn종류의 채소가 보관되어 있다. 작은 N은 채소마다 특성을 고려해 합리적인 판매 계획을 세우고, 이익을 최대로 얻어야 한다.

채소를 팔면 다음과 같이 수입이 생긴다. ii번째 채소를 한 단위 팔 때마다 aia_i의 수입을 얻는다. 정책이 다양한 판매를 장려하므로, ii번째 채소를 처음 판매할 때는 추가로 sis_i의 수입을 더 얻는다.

운영을 시작할 때 채소 ii의 재고는 cic_i단위다. 채소는 빨리 상하며, 상한 채소는 팔 수 없다. 각 채소에는 신선도 값 xix_i가 있고, 모든 채소가 상할 때까지 매일 끝에 채소 ii가 xix_i단위씩 상한다. 각 단위가 상하는 시점은 고정되어 있으며, 판매량에 따라 바뀌지 않는다.

형식으로 쓰면 다음과 같다. d×xi≤cid \times x_i \le c_i를 만족하는 모든 양의 정수 dd에 대해, dd일 끝에 xix_i단위가 상한다. 특히 (d−1)×xi≤ci<d×xi(d-1)\times x_i \le c_i < d\times x_i이면, dd일이 끝날 때까지 ci−(d−1)×xic_i - (d-1)\times x_i단위가 상한다.

xi=0x_i = 0이면 이 채소는 상하지 않는다.

하루에 판매하는 채소의 총량은 최대 mm단위를 넘을 수 없다.

작은 N에게 kk개의 질의가 있다. 각 질의는 pjp_j가 주어질 때, pjp_j일 동안 판매한다면 얻을 수 있는 최대 이익을 묻는다.

입력

첫 줄에 세 양의 정수 nn, mm, kk가 주어진다. 각각 채소 종류의 수, 하루 판매 총량의 상한, 질의의 수다. 다음 nn줄에는 채소마다 0 이상의 정수 네 개 aia_i, sis_i, cic_i, xix_i가 차례로 주어진다. 이어서 kk줄에 각각 0 이상의 정수 pjp_j가 주어진다.

출력

kk줄을 출력한다. ii번째 줄에는 ii번째 질의의 답을 출력한다.

제한

  • n≤105n \le 10^5
  • m≤10m \le 10
  • pj≤105p_j \le 10^5
  • 모든 테스트 데이터에서 각 질의 집합의 pjp_j는 서로 다르다.
  • 모든 테스트 데이터에서 0≤si,xi≤1090\le s_i,x_i\le 10^9이다.

예제1

  1. 예제 1

    입력
    2 3 2
    3 3 3 3
    2 5 8 3
    1
    3
    
    예상 출력
    16
    27