만드는 중입니다

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

Parity Constraint 최소 스패닝 트리

시간 제한1초메모리 제한1024 MB

요약
가중치가 있는 연결 그래프에서 모든 신장 트리 중 합이 홀수인 최소값과 짝수인 최소값을 구합니다. 그런 트리가 없으면 -1을 출력합니다.
난이도

보통10점 중 7점

유형
최소 신장 트리, 그래프, 유니온 파인드, 그리디
정답자
아직 제출이 없습니다

문제

2019년 연세대학교 최적화 연구실에서 특정 문제에 Parity Constraint(홀짝 제약)를 넣어 푸는 것이 갑자기 유행한 적이 있었다. 졸업한 김강산 선배도 Parity Constraint 관련 논문을 썼다. 이를 기념하여 국렬이는 연세대학교 프로그래밍 경진대회에 Parity Constraint 문제를 내기로 했다.

정점이 NN개, 비용이 있는 무방향 간선이 MM개 있는 그래프가 주어진다. 모든 정점에는 1부터 NN까지 번호가 매겨져 있다. 임의의 정점에서 다른 모든 정점으로 가는 경로는 항상 존재하며, 서로 다른 두 정점 사이에는 최대 한 개의 간선이 있다.

스패닝 트리는 주어진 그래프의 부분 그래프 중 트리인 것을 뜻한다. 스패닝 트리가 가질 수 있는 비용의 합 중 홀수인 최솟값과 짝수인 최솟값을 구하여라.

입력

NN MM u1u_1 v1v_1 w1w_1 . . . uMu_M vMv_M wMw_M

출력

스패닝 트리가 가질 수 있는 비용의 합 중 홀수인 최솟값과 짝수인 최솟값을 출력한다. 해당하는 트리가 존재하지 않으면 -1을 출력한다.

제한

  • 2 ≤ N ≤ 100,000.
  • 1 ≤ M ≤ 300,000.
  • 1 ≤ uiu_i, viv_i ≤ N. uiu_i ≠ viv_i. uiu_i와 viv_i는 ii번째 간선의 양 끝점이다.
  • 1 ≤ wiw_i ≤ 1,000,000,000. wiw_i는 ii번째 간선의 비용이다.
  • 입력으로 주어지는 수는 모두 정수이다.

예제4

  1. 예제 1

    입력
    2 1
    1 2 1
    
    예상 출력
    1 -1
    
  2. 예제 2

    입력
    3 2
    1 2 3
    2 3 3
    
    예상 출력
    -1 6
    
  3. 예제 3

    입력
    3 3
    1 2 3
    2 3 3
    3 1 2
    
    예상 출력
    5 6
    
  4. 예제 4

    입력
    11 23
    10 5 832262475
    4 10 301084042
    4 1 799372953
    4 8 689519369
    5 2 873313484
    6 4 46186948
    8 9 388003582
    2 7 422044725
    5 3 299817881
    11 8 779478862
    11 5 416526224
    11 6 125285000
    1 3 566784345
    10 6 126434276
    11 2 546492450
    5 9 914379895
    3 7 540663871
    7 8 737058872
    6 8 932017467
    1 9 788517162
    11 3 96034563
    8 1 113947346
    2 10 117057067
    
    예상 출력
    2301595733 2418304076