발전소 민영화

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

요약
새 발전소를 가장 가까운 기존 발전소에 연결해 만든 트리를, 총 용량이 C 이상인 연결 부분트리로 최대한 많이 나누는 문제다.
난이도

어려움10점 중 8점

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

문제

최근 몇 년간 이 나라의 전력 수요가 빠르게 늘었고, 앞으로 20년 동안에는 더욱 빠르게 늘어날 것으로 예상된다. 이 수요 증가에 대응하기 위해 정부는 국영 기업 ICPC(Independent Circuit Power Corporation)의 독점을 끝내고 전력 생산 부문을 민영화하려 한다.

ICPC는 여러 발전소(수력 및 원자력)를 보유하고 있다. 발전소들은 전국을 가로지르는 송전선으로 연결되어 있다. 각 송전선은 서로 다른 두 발전소를 직선으로 잇는다. 송전 경로란 송전선 l1,l2,…,lml_1, l_2, \ldots, l_m 의 나열로서, 각 송전선 lil_i 는 발전소 pi−1p_{i-1} 과 pip_i 를 직접 잇고, 연속한 두 송전선 lil_i 와 li+1l_{i+1} 은 공통 발전소 pip_i 를 공유한다.

발전소는 예산 제약 때문에 여러 해에 걸쳐 한 번에 하나씩 지어졌다. 역시 예산 제약 때문에, 새 발전소를 지을 때마다 그 발전소를 기존 시스템에 연결하는 송전선은 정확히 하나만 건설되었다. 새 송전선은 항상 새로 지은 발전소를, 이미 시스템에 있는 발전소 중 (유클리드 거리 기준) 가장 가까운 발전소와 연결했다. 그런 발전소가 둘 이상이면(즉 최소 거리에 있는 발전소가 둘 이상이면) 가장 먼저 지어진(가장 오래된) 발전소를 선택했다.

민영화의 목표는 ICPC 전력 생산 시스템을 더 작은 여러 회사로 나누는 것이다. 각 회사는 발전소들의 집합을 소유하며, 각 발전소는 정확히 한 회사만 소유한다. 민영화가 끝나면 ICPC는 사라지고 새 회사들만 발전소를 소유한다. 발전소를 새 회사들에게 나누는 방식은 다음 제약을 지켜야 한다.

  • 모든 새 회사의 총 용량은 최소 CC 이상이어야 한다. 여기서 CC 는 정부가 정한 값(단위 MW, 메가와트)이다. 발전소 집합의 총 용량은 그 발전소들의 용량의 합이다.
  • 한 회사가 소유한 임의의 두 발전소 사이의 모든 송전 경로는 그 회사가 소유한 발전소만을 지나야 한다.

민영화 과정에서 만들 수 있는 새 회사의 최대 개수를 구하라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 두 정수 NN 과 CC 가 주어진다. NN 은 ICPC가 보유한 발전소의 총 수(1≤N≤100001 \le N \le 10000), CC 는 모든 새 회사가 가져야 하는 최소 총 용량(MW, 1≤C≤100001 \le C \le 10000)이다. 발전소는 11 번부터 NN 번까지의 정수로 구분한다. 발전소 11 번이 가장 먼저, 22 번이 그다음 순서로 지어졌다. 이어지는 NN 개의 줄은 각 발전소를 설명하며, 첫 줄은 발전소 11 번, 둘째 줄은 발전소 22 번을 나타내는 식이다. 각 줄에는 세 정수 XX, YY, PP 가 주어진다. (X,Y)(X, Y) 는 발전소의 위치(0≤X≤10000 \le X \le 1000, 0≤Y≤10000 \le Y \le 1000)이고, PP 는 발전소의 용량(1≤P≤10001 \le P \le 1000)이다. 어떤 두 발전소도 같은 위치에 있지 않다. 입력의 끝은 N=C=0N = C = 0 인 줄로 나타낸다.

출력

각 테스트 케이스마다 한 줄을 출력한다. 그 줄에는 민영화 과정에서 만들 수 있는 새 회사의 최대 개수를 나타내는 정수 하나만 출력한다.

예제1

  1. 예제 1

    입력
    2 22
    0 0 20
    10 20 30
    4 430
    10 20 100
    20 10 400
    50 10 50
    25 25 500
    3 100
    10 10 33
    0 10 33
    10 0 33
    0 0
    
    예상 출력
    1
    2
    0