만드는 중입니다

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

식당 추천

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

요약
식당들이 즐겨찾기 방향 그래프로 서로를 추천할 때, 각 단계의 가격이 추천한 식당이 현재 식당의 즐겨찾기인지에 따라 달라지는 상황에서 정확히 k개의 식당을 방문하는 최소 비용을 모든 k에 대해 구한다.
난이도

어려움10점 중 8점

유형
그래프, 동적 계획법, 최단 경로, 그리디
정답자
아직 제출이 없습니다

문제

루카의 도시에는 1번부터 NN번까지 번호가 붙은 식당 NN곳이 있고, 누구나 마음에 드는 식당을 찾을 수 있다. 식당 주인도 저마다 즐겨 찾는 식당이 있다. 식당 주인에게 추천을 부탁하면 주인은 자기 식당과 자신이 즐겨 찾는 식당을 추천하고, 그 식당 주인들이 추천할 식당도 모두 추천한다.

즉 식당 ii의 주인이 추천하는 식당은 ii 자신과, 즐겨 찾는 식당을 따라 한 번 이상 이동해서 도달할 수 있는 모든 식당이다.

아래 표는 식당이 네 곳인 예시이다.

식당 주인즐겨 찾는 식당추천하는 식당
121, 2, 3, 4
232, 3, 4
32, 42, 3, 4
4없음4

루카는 다음 방법으로 식당 몇 곳을 방문하려 한다.

  • 첫 식당은 마음대로 고른다.
  • 그다음 식당은 지금 있는 식당의 주인에게 추천을 받고, 추천받은 식당 중 아직 방문하지 않은 곳을 하나 골라서 정한다.
  • 루카는 언제든지 방문을 끝낼 수 있다.

식당 AA의 대표 메뉴 가격은 XAX_A와 YAY_A 두 가지이다. 루카가 식당에 들어가면 주인은 누가 이 식당을 추천했는지 묻는다. 추천한 사람이 식당 BB의 주인이라면 루카가 내는 금액은 다음과 같다.

  • 식당 AA의 주인이 식당 BB를 추천한다면 XAX_A쿠나
  • 그렇지 않으면 YAY_A쿠나. 루카는 첫 식당에서도 이 금액을 낸다.

이 방법으로 방문할 수 있는 식당 수의 최댓값을 KK라고 하자. 11 이상 KK 이하의 모든 kk에 대해, 루카가 식당을 정확히 kk곳 방문하려면 최소 몇 쿠나가 필요한지 구하시오.

입력

첫째 줄에 식당의 수 NN이 주어진다. (1≤N≤10001 \le N \le 1000)

다음 NN개 줄에는 각각 정수 여러 개가 주어진다.

ii번째 줄의 처음 두 수는 식당 ii의 대표 메뉴 가격 XiX_i, YiY_i이다. (1≤Xi,Yi≤100001 \le X_i, Y_i \le 10000) 세 번째 수 OiO_i는 식당 ii의 주인이 즐겨 찾는 식당의 수이다. (0≤Oi<N0 \le O_i < N) 나머지 OiO_i개 수는 즐겨 찾는 식당의 번호이며, 이 번호는 서로 다르고 ii와 같은 번호는 없다.

출력

루카가 방문할 수 있는 식당 수의 최댓값이 KK일 때 KK개 줄을 출력한다. kk번째 줄에는 루카가 식당을 정확히 kk곳 방문할 때 내야 하는 금액의 최솟값을 쿠나 단위로 출력한다.

힌트

첫 번째 예제에서 식당 한 곳을 가장 싸게 방문하는 방법은 식당 1(200쿠나)을 방문하는 것이다.

식당 두 곳을 가장 싸게 방문하려면 식당 3(250쿠나)을 방문한 뒤 식당 2(200쿠나)를 방문한다.

식당 세 곳을 가장 싸게 방문하려면 식당 1(200쿠나), 식당 3(250쿠나), 식당 2(200쿠나) 순서로 방문한다.

식당 네 곳을 가장 싸게 방문하려면 식당 1(200쿠나), 식당 3(250쿠나), 식당 2(200쿠나), 식당 4(300쿠나) 순서로 방문한다.

예제2

  1. 예제 1

    입력
    4
    100 200 1 2
    200 300 1 3
    200 250 2 2 4
    200 300 0
    
    예상 출력
    200
    450
    650
    950
    
  2. 예제 2

    입력
    9
    100 100 0
    300 400 1 4
    350 500 1 2
    550 600 3 7 3 2
    900 300 2 7 6
    250 400 1 5
    900 900 2 9 8
    400 500 1 9
    500 400 0
    
    예상 출력
    100
    550
    950
    1450
    2150
    3050