728x90
반응형
https://www.acmicpc.net/problem/2252
2252번: 줄 세우기
첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의
www.acmicpc.net
#include <iostream>
#include <vector>
#include <queue>
#define MAX 32001
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int n, indegree[MAX];
vector<int> a[MAX];
int m, x, y;
cin >> n >> m;
for(int i = 0; i < m; i++){
cin >> x >> y;
a[x].push_back(y);
indegree[y]++;
}
int result[MAX];
queue<int> q;
for(int i = 1; i <= n; i++){
if(indegree[i] == 0) q.push(i);
}
for(int i = 1; i <= n; i++){
int x = q.front();
q.pop();
result[i] = x;
for(int i = 0; i < a[x].size(); i++){
int y = a[x][i];
if(--indegree[y] == 0){
q.push(y);
}
}
}
for(int i = 1; i <= n; i++)
cout << result[i] << " ";
return 0;
}
728x90
반응형
'Algorithm > BAEKJOON' 카테고리의 다른 글
[BOJ] 11724번 연결 요소의 개수 (C++) (0) | 2021.12.24 |
---|---|
[BOJ] 1766번 문제집 (C++) (0) | 2021.12.24 |
[BOJ] 1822번 차집합 (C++) (0) | 2021.12.23 |
[BOJ] 5639번 이진 검색 트리 (C++) (0) | 2021.12.22 |
[BOJ] 1978번 소수 찾기 (C++) (0) | 2021.11.12 |