https://www.acmicpc.net/problem/2623
2623:: 음악프로그램
핵심::
위상정렬 기본 문제
풀이::
의견::
코드::
더보기
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
vector<vector<int>> arr(n + 1);
vector<int> en(n + 1, 0);
for (int i = 1; i <= m; i++) {
int k; cin >> k;
int pv; cin >> pv;
for (int j = 1; j < k; j++) {
int t; cin >> t;
arr[pv].push_back(t);
en[t]++;
pv = t;
}
}
queue<int> q;
vector<int> dap;
for (int i = 1; i <= n; i++) {
if (en[i] == 0) {
q.push(i);
dap.push_back(i);
}
}
while (!q.empty()) {
auto cur = q.front(); q.pop();
for (auto nv : arr[cur]) {
if (--en[nv] == 0) {
q.push(nv);
dap.push_back(nv);
}
}
}
if (dap.size() < n) {
cout << 0;
}
else {
for (auto p : dap) {
cout << p << "\n";
}
}
return 0;
}
'Algorithm > Algorithm 문제 풀이' 카테고리의 다른 글
[BAE/<JOON> 문제풀이] 1799. 비숍 (0) | 2022.07.15 |
---|---|
[BAE/<JOON> 문제풀이] 1562. 계단 수 (0) | 2022.07.15 |
[BAE/<JOON> 문제풀이] 2252. 줄세우기 (0) | 2022.07.15 |
[BAE/<JOON> 문제풀이] 7570. 줄 세우기 (0) | 2022.07.15 |
[BAE/<JOON> 문제풀이] 2533. 사회망 서비스 (0) | 2022.07.15 |