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

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

건설 사업

시간 제한5초메모리 제한256 MB

요약
N개 마을 중 H개 이하에 공항을 세우고, M개의 직사각형 장애물을 피하는 축에 평행한 도로로 모든 마을을 연결할 때, 공항 비용과 도로 길이의 합을 최소화한다.
난이도

어려움10점 중 9점

유형
최소 신장 트리, 기하, 정렬, 유니온 파인드
정답자
아직 제출이 없습니다

문제

IOI 나라에서는 교통망을 한꺼번에 정비하려고 한다. IOI 나라는 xy 좌표 평면으로 나타내며, 그 위에 NN개의 마을이 있다. ii번째 (1≤i≤N1 \le i \le N) 마을은 점 (Xi,Yi)(X_i, Y_i)로 나타낸다. 교통망 정비는 다음 순서로 진행한다.

  • NN개의 마을 중 몇 개에 국제공항을 건설한다. 국제공항은 적어도 1개는 건설해야 한다. 국제공항은 1개를 건설할 때마다 정해진 비용이 든다.
  • 마을끼리 잇는 도로를 몇 개铺设한다. 도로는 마을을 나타내는 점끼리 직접 잇는, xx축 또는 yy축에 평행한 선분이며, 도로는 1개를铺设할 때마다 그 길이만큼의 비용이 든다.

이때 다음 조건을 만족해야 한다.

  • IOI 나라에는 지반 상태가 나쁜 등의 이유로 도로를铺设할 수 없는 영역이 MM개 있다. 각 영역은 직사각형으로 나타내며, jj번째 (1≤j≤M1 \le j \le M) 직사각형의 왼쪽 아래 점은 (Pj,Qj)(P_j, Q_j), 오른쪽 위 점은 (Rj,Sj)(R_j, S_j)이다. 즉 Pj<RjP_j < R_j이고 Qj<SjQ_j < S_j이다. 어떤 도로도 MM개의 영역 중 어느 것과도 공통부분을 가져서는 안 된다. 영역은 둘레도 포함하며, 영역을 나타내는 직사각형의 둘레와 공통부분을 가지는 도로도 있어서는 안 된다.
  • NN개의 어느 마을에서도 도로를 따라 다른 마을로 이동하는 것을 반복해 국제공항이 있는 마을에 도달할 수 있어야 한다.

이 사업의 발주처 후보로 건설회사 C사가 거론되고 있다. kk번째 (1≤k≤C1 \le k \le C) 건설회사는 국제공항을 1개 건설하는 데 비용 BkB_k가 들고, 최대 HkH_k개까지 국제공항을 건설할 수 있다. 도로 건설에 드는 비용은 건설회사와 무관하며, 도로의 개수나 길이에는 제한이 없다. 각 건설회사에 대해, 그 건설회사가 위 조건을 만족하도록 교통망을 정비할 때 드는 비용 합계의 최솟값을 구하고자 한다.

건설할 수 있는 국제공항의 개수가 작아서 조건을 만족하는 교통망 정비를 할 수 없는 건설회사가 있을 수도 있다. 그런 경우에는 비용 합계 대신 조건을 만족할 수 없다고 보고해야 한다.

IOI 나라의 마을 수를 나타내는 정수 NN과 마을 좌표, 도로를铺设할 수 없는 영역의 수를 나타내는 정수 MM과 각 영역을 나타내는 좌표, 발주처 후보 건설회사의 수를 나타내는 정수 CC와 각 건설회사의 정보가 주어졌을 때, 각 건설회사에 대해 문제에서 말한 조건을 만족하도록 교통망을 정비할 때 드는 비용 합계의 최솟값을 구하는 프로그램을 작성하라.

입력

표준 입력에서 다음 입력을 읽는다.

  • 1번째 줄에는 3개의 정수 N,M,CN, M, C가 공백을 구분으로 쓰여 있으며, 각각 IOI 나라에 있는 마을의 개수, 도로를铺设할 수 없는 영역의 개수, 사업 발주처 후보 건설회사의 개수를 나타낸다.
  • 이어지는 NN개 줄 중 ii번째 줄 (1≤i≤N1 \le i \le N)에는 2개의 정수 Xi,YiX_i, Y_i가 공백을 구분으로 쓰여 있으며, ii번째 마을의 좌표가 (Xi,Yi)(X_i, Y_i)임을 나타낸다.
  • 이어지는 MM개 줄 중 jj번째 줄 (1≤j≤M1 \le j \le M)에는 4개의 정수 Pj,Qj,Rj,SjP_j, Q_j, R_j, S_j가 공백을 구분으로 쓰여 있으며, jj번째 도로를铺设할 수 없는 영역을 나타내는 직사각형의 왼쪽 아래 점 좌표가 (Pj,Qj)(P_j, Q_j), 오른쪽 위 점 좌표가 (Rj,Sj)(R_j, S_j)임을 나타낸다.
  • 이어지는 CC개 줄 중 kk번째 줄 (1≤k≤C1 \le k \le C)에는 2개의 정수 Bk,HkB_k, H_k가 공백을 구분으로 쓰여 있으며, kk번째 발주처 후보 건설회사가 국제공항을 1개 건설하는 데 BkB_k의 비용이 들고 최대 HkH_k개까지 국제공항을 건설할 수 있음을 나타낸다.

출력

표준 출력에 CC개 줄을 출력한다. kk번째 줄 (1≤k≤C1 \le k \le C)에는 kk번째 발주처 후보 건설회사가 이 사업을 한다고 할 때 드는 비용 합계의 최솟값을 나타내는 정수 하나를 출력한다. 다만 kk번째 발주처 후보 건설회사가 조건을 만족하도록 사업을 할 수 없으면 대신 정수 −1-1을 출력한다.

제한

  • 1≤N≤200 0001 \le N \le 200\,000.
  • 1≤M≤200 0001 \le M \le 200\,000.
  • 1≤C≤500 0001 \le C \le 500\,000.
  • 0≤Xi≤1 000 000 0000 \le X_i \le 1\,000\,000\,000 (1≤i≤N1 \le i \le N).
  • 0≤Yi≤1 000 000 0000 \le Y_i \le 1\,000\,000\,000 (1≤i≤N1 \le i \le N).
  • 같은 좌표에 마을이 2개 이상 있는 경우는 없다.
  • 0≤Pj<Rj≤1 000 000 0000 \le P_j < R_j \le 1\,000\,000\,000 (1≤j≤M1 \le j \le M).
  • 0≤Qj<Sj≤1 000 000 0000 \le Q_j < S_j \le 1\,000\,000\,000 (1≤j≤M1 \le j \le M).
  • 어느 영역도 마을을 그 직사각형의 내부 또는 둘레에 포함하지 않는다.
  • 1≤Bk≤1 000 000 0001 \le B_k \le 1\,000\,000\,000 (1≤k≤C1 \le k \le C).
  • 1≤Hk≤N1 \le H_k \le N (1≤k≤C1 \le k \le C).

예제1

  1. 예제 1

    입력
    4 2 3
    1 1
    10 1
    1 10
    10 10
    4 0 8 9
    1 4 9 8
    7 4
    10 3
    1 1
    
    예상 출력
    28
    38
    -1