준오는 최종인재야!!
시간 제한2초메모리 제한512 MB
가중치가 있는 트리에서 지나는 정점 수가 최대인 단순 경로를 찾고, 그중 간선 가중치 합이 가장 작은 경로를 골라 그 합을 T로 나눈 올림 값을 구한다.
문제
준오는 멘토에게 과제를 받았다. 과제에 쓰이는 문제 풀이 시스템은 다음과 같다.
- 문제가 개 있고, 서로 다른 두 문제를 잇는 링크가 개 있다. 링크는 양방향으로 동작한다.
- 어느 문제에서 출발하더라도 링크를 따라가면 나머지 문제에 모두 도달한다.
- 문제 에서 문제 로 가는 경로는 항상 하나뿐이다.
준오는 개 중 아무 문제나 하나 골라 테스트를 시작한다. 처음 고른 문제는 보너스로 취급해서 0초 만에 풀린다. 문제를 푼 뒤에는 그 문제에 연결된 링크 중 하나를 골라 반대쪽 문제로 넘어간다. 링크를 지나는 데 걸리는 시간은 그 링크에 적힌 값이고, 를 푼 뒤 를 푸는 시간은 를 푼 뒤 를 푸는 시간과 같다. 한 번 지나온 문제로는 다시 돌아갈 수 없다.
준오는 이 시스템에서 푸는 문제 수를 최대로 만들려고 한다. 하루에 문제 풀이에 쓸 수 있는 시간은 이고, 하루치 시간을 다 쓰면 남은 풀이를 다음 날 이어서 한다. 풀이는 날이 바뀌는 지점에서 잘려도 된다. 즉, 고른 경로의 링크 시간 합이 이면 걸리는 날짜 수는 를 로 나눈 값을 올림한 수다. 예를 들어 가 4이고 링크 시간이 3, 3, 3인 경로를 고르면 합이 9이므로 4 + 4 + 1로 사흘이 걸린다.
푸는 문제 수가 최대인 경로가 여럿이면 준오는 그중 날짜 수가 가장 적은 경로를 고른다. 과 , 링크 정보가 주어질 때 걸리는 날짜 수를 구하라.
입력
첫째 줄에 문제 수 과 하루 풀이 시간 가 주어진다. (, ) 다음 개 줄에는 줄마다 세 정수 , , 가 주어진다. (, ) 와 는 링크로 이어진 두 문제의 번호이고, 는 를 푼 뒤 를 풀거나 를 푼 뒤 를 푸는 데 걸리는 시간이다.
출력
준오가 문제를 최대한 많이 푸는 데 걸리는 최소 날짜 수를 한 줄에 출력한다.