만드는 중입니다

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

Parity Constraint Perfect Matching

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

요약
가중치가 있는 이분 그래프에서 간선 가중치 합이 짝수인 완전 매칭과 홀수인 완전 매칭을 각각 하나씩 찾고, 없으면 -1을 출력합니다.
난이도

어려움10점 중 9점

유형
그래프, 행렬, 수학
정답자
아직 제출이 없습니다

문제

국렬이는 졸업하신 선배님을 존경하는 마음으로 Parity Constraint 문제를 하나 더 내려고 한다.

왼쪽 정점과 오른쪽 정점이 각각 NN개씩 있고, 가중치가 있는 간선 MM개로 이루어진 이분 그래프가 주어진다. 왼쪽과 오른쪽 정점에는 각각 1부터 NN까지 번호가 매겨져 있으며, 서로 다른 두 정점 사이의 간선은 최대 한 개이다.

Perfect Matching은 간선의 양 끝점이 겹치지 않도록 고른 NN개의 간선의 집합이다. 간선 가중치의 합이 짝수인 Perfect Matching과 홀수인 Perfect Matching을 각각 하나씩 구한다.

입력

첫째 줄에 NN과 MM이 주어진다. (1≤N≤5001 \le N \le 500, 1≤M≤N21 \le M \le N^2)

다음 MM개의 줄에는 간선을 나타내는 (x,y,c)(x, y, c)가 순서대로 주어진다. xx는 왼쪽 정점의 번호, yy는 오른쪽 정점의 번호, cc는 간선의 가중치이다. (1≤x,y≤N1 \le x, y \le N, 1≤c≤1091 \le c \le 10^9) 두 정점 사이에 간선이 여러 개 있는 경우는 없다.

출력

첫째 줄부터 NN개의 줄에 걸쳐, 가중치 합이 짝수인 Perfect Matching에 속한 간선의 양 끝점 번호를 왼쪽, 오른쪽 순으로 출력한다. 짝수인 Perfect Matching이 존재하지 않으면 -1을 출력한다.

두 번째 줄부터는 같은 방식으로 가중치 합이 홀수인 Perfect Matching을 출력한다. 마찬가지로 존재하지 않으면 -1을 출력한다.

가중치 합이 최소일 필요는 없으며, 간선의 출력 순서는 상관없다. 답이 여러 개인 경우 아무것이나 출력해도 된다.

예제3

  1. 예제 1

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

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

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