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

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

중앙값 무게 구슬

면접 대비

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

요약
구슬 사이의 무게 비교 결과가 주어질 때, 자기보다 무겁거나 가볍다고 알려진 구슬이 (N+1)/2개 이상인 구슬의 수를 센다.
난이도

보통10점 중 5점

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

문제

모양과 크기는 같지만 무게가 서로 다른 구슬이 NN개 있다. NN은 홀수이며, 구슬에는 1,2,…,N1, 2, \dots, N의 번호가 매겨져 있다. 이 가운데 무게가 중앙값인 구슬, 즉 전체 NN개 중에서 N+12\frac{N+1}{2}번째로 가벼운 구슬을 찾는 것이 목표이다.

저울을 이용하면 두 구슬의 무게를 비교하여 어느 쪽이 더 무거운지 알 수 있다. MM번의 비교를 마치면 어떤 구슬이 다른 구슬보다 무겁다는 사실들을 알게 되며, 이 관계는 추이적이다. 즉 구슬 AA가 구슬 BB보다 무겁고 구슬 BB가 구슬 CC보다 무거우면, AA는 CC보다 무겁다. 이 정보만으로 중앙값이 될 수 없는 구슬을 모두 골라내려고 한다.

어떤 구슬보다 무겁다고 알려진 구슬이 N+12\frac{N+1}{2}개 이상이거나, 그 구슬보다 가볍다고 알려진 구슬이 N+12\frac{N+1}{2}개 이상이면, 그 구슬은 절대로 중앙값이 될 수 없다.

예를 들어 N=5N = 5이고 다음과 같은 M=4M = 4개의 결과가 주어졌다고 하자.

  1. 구슬 2는 구슬 1보다 무겁다.
  2. 구슬 4는 구슬 3보다 무겁다.
  3. 구슬 5는 구슬 1보다 무겁다.
  4. 구슬 4는 구슬 2보다 무겁다.

정확히 어떤 구슬이 중앙값인지는 알 수 없지만, 구슬 1과 구슬 4는 결코 중앙값이 될 수 없다. 구슬 2, 4, 5는 모두 구슬 1보다 무겁고, 구슬 1, 2, 3은 모두 구슬 4보다 가볍기 때문이다. N+12=3\frac{N+1}{2} = 3이므로 두 구슬 모두 제거 조건을 만족한다.

중앙값이 될 수 없는 구슬이 몇 개인지 세는 프로그램을 작성하여라.

입력

첫째 줄에 테스트 케이스의 수 tt (1≤t≤111 \le t \le 11)가 주어진다. 이어서 각 테스트 케이스의 데이터가 주어진다.

각 테스트 케이스의 첫째 줄에는 두 정수 NN (1≤N≤991 \le N \le 99)과 MM이 주어지며, NN은 구슬의 개수, MM은 비교 횟수이다. 다음 MM개의 줄에는 각각 두 정수 aa와 bb가 주어지며, 이는 구슬 aa가 구슬 bb보다 무겁다는 뜻이다.

출력

각 테스트 케이스마다 중앙값이 될 수 없는 구슬의 개수를 한 줄에 하나씩 출력한다.

예제3

  1. 예제 1

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

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

    입력
    1
    3 2
    3 2
    2 1
    
    예상 출력
    2