효율적인 해킹

면접 대비

시간 제한5초메모리 제한256 MB

요약
컴퓨터 N개와 신뢰 관계가 주어질 때, 처음 해킹했을 때 가장 많은 컴퓨터를 해킹할 수 있는 컴퓨터 번호를 모두 출력합니다.
난이도

보통10점 중 4점

유형
그래프, BFS, DFS
정답자
아직 제출이 없습니다

문제

어떤 회사에는 N개의 컴퓨터와 컴퓨터 사이의 신뢰 관계가 있다. 컴퓨터 A가 컴퓨터 B를 신뢰한다면, B를 해킹했을 때 A도 해킹할 수 있다.

처음에 컴퓨터 하나를 골라 해킹할 수 있다. 그 한 번의 시작으로 해킹할 수 있는 컴퓨터 수가 가장 많아지는 모든 시작 컴퓨터 번호를 출력하는 프로그램을 작성하라.

입력

첫째 줄에 N과 M이 주어진다. N은 10,000 이하의 자연수이고, M은 100,000 이하의 자연수이다.

다음 M개의 줄에는 신뢰 관계가 A B 형식으로 주어진다. 이는 컴퓨터 A가 컴퓨터 B를 신뢰한다는 뜻이다. 컴퓨터에는 1번부터 N번까지 번호가 붙어 있다.

출력

해킹할 수 있는 컴퓨터 수가 최대가 되는 시작 컴퓨터 번호를 오름차순으로 모두 출력한다.

예제1

  1. 예제 1

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