아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

탐욕스러운 농부들

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

요약
각 노드에 이웃에 없는 가장 작은 그런디 수를 부여하되 무한(-1)을 받는 노드가 최대가 되도록 배정을 구한다.
난이도

어려움10점 중 8점

유형
그래프, 게임 이론, 그리디, DFS
정답자
아직 제출이 없습니다

문제

바이트랜드의 여러 나라가 통합하여 '바이트 국가 연합'을 만들기로 했다. 그 첫 번째 정책 중 하나는 농업에 대한 직접 보조금 제도이다. 모든 농부는 자신이 소유한 농장의 크기를 나타내는 자연수를 하나 받고, 이 수가 곧 받게 될 보조금의 크기를 결정한다.

불평등을 줄이기 위해 의회는 00부터 시작하여 가장 작은 수를 가진 농부에게 가장 많은 보조금을 주기로 했다. 이렇게 하면 모든 농부가 값 00을 차지하려 하므로 다음 규칙이 추가되었다. 각 농부에게는, 그가 고용한 농부들에게 배정된 모든 수와 다른 가장 작은 자연수를 배정해야 한다.

그런데 어떤 구성에서는 이러한 배정을 유일하게 만들 수 없거나 아예 만들 수 없는 경우가 있다. 이런 경우를 위해 무한대라는 값을 추가로 사용한다. 농부 XX는, XX가 고용한 어떤 농부 YY 역시 무한대를 배정받았고, 그 YY가 고용한 농부들 중 어느 누구도 XX가 차지하고 싶어 하는 유한한 값을 배정받지 않은 경우에 한해 무한대를 배정받을 수 있다. 정부는 최종 배정에 무한대가 가능한 한 많이 포함되기를 원하며, 이 조건을 만족하는 배정은 유일하다.

이 배정을 계산하는 프로그램을 작성하여라. 값이 무한대인 농부에 대해서는 −1-1을 출력한다.

입력

첫째 줄에 테스트 케이스의 수 tt (1≤t≤1001 \le t \le 100)가 주어진다. 이어서 tt개의 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 줄에는 두 정수 nn과 mm (1≤n≤1001 \le n \le 100, 0≤m<100000 \le m < 10000)이 주어지며, 각각 농부의 수와 그들 사이의 고용 관계의 수를 의미한다. 농부는 11번부터 nn번까지 번호가 매겨져 있다.

다음 mm개의 줄에는 각각 두 정수 aa와 bb (1≤a,b≤n1 \le a, b \le n)가 주어지며, 이는 농부 aa가 농부 bb를 고용함을 의미한다.

출력

각 테스트 케이스마다 nn개의 줄을 출력한다. 그중 ii번째 줄에는 농부 ii에게 배정된 값을 출력한다. 그 값이 무한대이면 대신 −1-1을 출력한다.

예제3

  1. 예제 1

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

    입력
    1
    1 0
    
    예상 출력
    0
    
  3. 예제 3

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