Universal Cup Judging System

Universal Cup

実行時間制限: 4 s メモリ制限: 2048 MB 満点: 100 難易度: [表示] ハック可能 ✓
統計

그거 아세요? 6202년, Little Cyan Fish의 서버가 $10^6$번째 멤버를 맞이했습니다! 한 번도 들어본 적 없으시다고요? Qingyu의 그룹이라고도 불리는 이 서버는 그의 친구들이 모여 경쟁 프로그래밍(CP), 비경쟁 프로그래밍, 베이징 대학(PKU) 농담, 베이징의 맛집 등 온갖 주제에 대해 수다를 떠는 곳입니다. 하지만 무엇보다 중요한 것은, 매일 채팅창이 누가 누구의 아이돌인지에 대한 메시지로 가득 차 있다는 점입니다.

전통에 따라 Little Cyan Fish는 $1$부터 $n$까지 번호가 매겨진 $n$명의 멤버와 함께 아이돌 파티를 열고 있습니다. 이 멤버들 사이에는 $m$개의 팬–아이돌 관계가 있습니다. $i$번째 관계에서 멤버 $u_i$는 멤버 $v_i$의 팬이며, $u_i$가 $v_i$에게 주는 선물 비용은 $w_i$입니다. 파티에서 각 멤버는 자신의 아이돌 중 한 명에게 특별한 선물을 정확히 하나 주어야 합니다. 그러나 두 멤버가 서로 선물을 주고받으면 어색해질 것이므로(꽤 달콤하게 들리긴 하지만요 :p), 어떤 두 멤버도 서로에게 선물을 줄 수 없습니다.

선물의 최소 총비용을 구하거나, 올바른 선물 배정이 존재하지 않음을 판별하세요.

입력

첫 번째 줄에 테스트 케이스의 개수를 나타내는 정수 $T$ ($1 \le T$)가 주어집니다. 이어서 각 테스트 케이스에 대한 설명이 주어집니다.

각 테스트 케이스의 첫 번째 줄에는 멤버의 수와 팬–아이돌 관계의 수를 각각 나타내는 두 정수 $n$과 $m$ ($1 \le n \le 10^6$, $0 \le m \le 10^6$)이 주어집니다.

다음 $m$개의 줄 중 $i$번째 줄에는 세 정수 $u_i$, $v_i$, $w_i$ ($1 \le u_i, v_i \le n$, $u_i \ne v_i$, $0 \le w_i \le 10^9$)가 주어지며, 이는 멤버 $u_i$가 멤버 $v_i$의 팬이고 $u_i$가 $v_i$에게 주는 선물 비용이 $w_i$임을 나타냅니다.

모든 테스트 케이스에 대한 $n$의 합은 $10^6$ 이하이며, 모든 테스트 케이스에 대한 $m$의 합도 $10^6$ 이하임이 보장됩니다. 각 테스트 케이스에서 각 순서쌍 $(u_i, v_i)$는 최대 한 번만 등장함이 보장됩니다. 두 멤버가 서로의 팬일 수도 있습니다.

출력

각 테스트 케이스마다 선물의 가능한 최소 총비용을 나타내는 정수를 출력합니다. 해가 존재하지 않으면 $-1$을 출력합니다. 각 답을 별도의 줄에 출력하세요.

예제

입력 1

3
3 3
1 2 1
2 3 2
3 1 3
2 2
1 2 0
2 1 0
3 4
1 2 0
1 3 1
2 1 0
3 2 0

출력 1

6
-1
1

참고

첫 번째 예제 테스트 케이스에서는 멤버 $1$이 멤버 $2$에게, 멤버 $2$가 멤버 $3$에게, 멤버 $3$이 멤버 $1$에게 선물을 줍니다. 총비용은 $1 + 2 + 3 = 6$입니다.

두 번째 예제 테스트 케이스에서는 멤버 $1$과 $2$가 서로에게 선물을 주어야만 하므로, 올바른 배정이 존재하지 않습니다.

세 번째 예제 테스트 케이스에서는 멤버 $1$이 멤버 $3$에게, 멤버 $2$가 멤버 $1$에게, 멤버 $3$이 멤버 $2$에게 선물을 줍니다. 총비용은 $1$입니다.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.