RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
R00757

문제집

Gold II 골드 II
난이도
2s
시간 제한
256MB
메모리 제한
0
맞았습니다!!
2
제출 수
0.0%
정답률
레이팅

의견: 0

설명

\(1\)번부터 \(N\)번까지의 문제를 모두 풀려고 한다. "\(A\)번 문제는 \(B\)번 문제보다 먼저 푸는 것이 좋다"는 조건 \(M\)개가 주어진다.

다음 규칙을 지키며 문제를 푸는 순서를 구하여라.

  1. \(N\)개의 문제를 모두 푼다.
  2. 먼저 푸는 것이 좋은 문제가 있으면, 그 문제를 먼저 푼다.
  3. 가능하면 쉬운 문제(번호가 작은 문제)부터 푼다.

즉, 조건을 만족하는 순서 중 사전순으로 가장 앞서는 것을 구하면 된다.

제약

\(1 \le N \le 32\,000\), \(0 \le M \le 100\,000\).

입력 형식

첫째 줄에 \(N\)\(M\)이 주어진다. 다음 \(M\)개의 줄에 두 정수 \(A\ B\)가 주어진다 — \(A\)번을 \(B\)번보다 먼저 푸는 것이 좋다는 뜻이다. 항상 모든 문제를 풀 수 있는 경우(사이클이 없는 경우)만 주어진다.

출력 형식

문제를 풀 순서를 공백으로 구분해 한 줄에 출력한다.

예제 1
입력
4 2
4 2
3 1
출력
3 1 4 2
설명

\(3\)\(1\)보다, \(4\)\(2\)보다 먼저 풀어야 한다. 사전순 최소는 \(3\ 1\ 4\ 2\).

예제 2
입력
3 0
출력
1 2 3
설명

조건이 없으면 번호 순서대로 푼다.

힌트

막혔나요? 코인으로 단계별 힌트를 잠금 해제하세요 — 첫 힌트는 가벼운 방향 제시, 뒤로 갈수록 더 많이 알려 줍니다. 문제를 풀면 모든 힌트가 무료로 공개됩니다.

문제 정보

riseoj 작성

출처 Original

평가 및 의견

문제집

개요
출제자 난이도 Gold II 골드 II 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

문제집

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8