불안정한 물질

면접 대비

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

요약
각 물질이 정확히 한 물질과 충돌할 때, 충돌하는 쌍이 없는 부분집합을 골라 최대 무게 합을 구한다.
난이도

보통10점 중 5점

유형
그래프, 동적 계획법, 트리, DFS
정답자
아직 제출이 없습니다

문제

과학자 X는 최근 여러 종류의 초나노 스케일 물질을 합성했다. 합성한 물질은 총 nn개이고, 각 물질에는 1부터 nn까지 번호가 붙어 있다. 물질 ii의 중량은 wiw_i이고, 각 물질은 하나씩만 존재한다.

곧 열리는 세계적인 학회인 "불안정한 물질 박람회"에 이 물질 중 일부를 특수 용기에 담아 가져가려고 하는데, 불안정한 물질이라 제약이 하나 있다. 각 물질 ii는 특정한 다른 물질과 함께 특수 용기에 담기면 불안정한 특성 때문에 폭발한다. 과학자 X는 여러 번의 실험 끝에 각 물질 ii가 이런 식으로 반응하는 상대가 오직 하나, 물질 QiQ_i뿐이라는 사실을 알아냈다.

이 정보가 주어졌을 때 과학자 X는 폭발을 일으키지 않는 물질의 조합을 골라 특수 용기에 담아 가려고 한다.

예를 들어 물질을 3개 합성했고 각 물질의 중량이 w1=3w_1 = 3, w2=5w_2 = 5, w3=1w_3 = 1이라 하자. 각 물질과 반응하는 상대 물질의 번호가 Q1=2Q_1 = 2, Q2=1Q_2 = 1, Q3=2Q_3 = 2라 하자.

즉, 1번 물질은 2번 물질과 함께 있으면 반응해 폭발하고, 2번 물질도 1번 물질과 함께 있으면 불안정해져 폭발한다. 마지막으로 3번 물질은 2번 물질과 함께 있으면 폭발한다.

이 경우 1번과 3번 물질은 함께 두어도 안전하고, 중량의 합은 4이다. 하지만 2번 물질 하나만 가져가면 중량 합이 5이므로, 2번 물질만 가져가는 것이 최선이다.

과학자 X는 폭발을 일으키지 않는 물질 조합 중에서 중량의 최댓값을 구하려고 한다. 이 값을 구해보자.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다.

각 테스트 케이스의 첫째 줄에는 물질의 종류 수 nn이 주어진다. 다음 nn개 줄에는 wiw_i와 QiQ_i가 한 줄에 하나씩, 1번 물질부터 순서대로 주어진다.

출력

각 테스트 케이스마다 과학자 X가 가져갈 수 있는 불안정한 물질 조합 중에서 중량의 최댓값을 한 줄에 하나씩 출력한다.

제한

  • 1≤T≤101 \le T \le 10
  • 2≤n≤100,0002 \le n \le 100{,}000
  • 1≤wi≤1,000,0001 \le w_i \le 1{,}000{,}000
  • 1≤Qi≤n1 \le Q_i \le n
  • Qi≠iQ_i \ne i

힌트

중량의 합이 231−12^{31}-1을 넘을 수 있다.

예제1

  1. 예제 1

    입력
    4
    3
    3 2
    5 1
    1 2
    3
    3 2
    2 3
    2 1
    4
    1 3
    2 3
    3 4
    4 2
    4
    2 2
    3 1
    4 4
    3 3
    
    예상 출력
    5
    3
    5
    7