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

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

최적의 트럭

시간 제한2초메모리 제한512 MB

요약
고객마다 최소 적재량과 이익의 계약 후보가 주어지고 고객당 최대 하나만 선택할 때, 각 목표 이익마다 이를 달성하는 최소 적재량을 구한다.
난이도

어려움10점 중 8점

유형
그리디, 정렬, 이분 탐색, 누적 합
정답자
아직 제출이 없습니다

문제

Peter는 트럭을 한 대 사서 작은 운송 사업을 시작하려 한다. 시장을 조사한 결과, 도시에 nn명의 잠재 고객이 있다는 것을 알아냈다. ii번째 고객에게는 mim_i개의 계약 선택지가 있다. 각 선택지는 두 수로 주어진다. wijw_{ij}는 계약을 이행하는 데 필요한 트럭의 최소 적재량이고, cijc_{ij}는 Peter가 이 계약을 체결했을 때 얻는 이익이다. 각 고객과는 계약을 최대 하나만 체결할 수 있다.

이제 Peter는 원하는 이익을 얻으려면 어떤 트럭을 사는 것이 좋을지 고민하고 있다. 선택지는 qq개이다. ii번째 선택지에서 Peter는 이익이 최소 xix_i 이상이기를 원한다. 각 선택지마다 그러한 이익을 얻을 수 있는 트럭 적재량의 최솟값을 구해 주자.

입력

첫째 줄에 정수 nn이 주어진다 (1≤n≤1051\le n\le 10^5).

이어서 각 잠재 고객의 계약 선택지를 설명하는 nn개의 블록이 주어진다. 각 블록은 수 mim_i로 시작하고, 이어서 mim_i쌍의 수 wij,cijw_{ij}, c_{ij}가 주어진다 (1≤mi1\le m_i, ∑mi≤5⋅105\sum m_i \le 5 \cdot 10^5, 1≤wij,cij≤1091\le w_{ij}, c_{ij}\le 10^9).

다음으로 수 qq가 주어진다 (1≤q≤1051\le q\le 10^5). 이어서 qq개의 수 xix_i가 주어진다 (1≤xi≤1091\le x_i\le 10^9).

출력

각 선택지마다 필요한 이익을 얻을 수 있는 트럭 적재량의 최솟값을 qq개 출력한다. 필요한 이익을 얻을 수 없으면 해당 선택지에 대해 −1-1을 출력한다.

예제1

  1. 예제 1

    입력
    3
    2
    10 20
    20 30
    1
    40 50
    3
    2 5
    1 10
    4 7
    5
    10 55 32 100 17
    
    예상 출력
    1 40 20 -1 10