Pagini recente » Cod sursa (job #1178619) | Cod sursa (job #63212) | Cod sursa (job #1574032) | Cod sursa (job #312084) | Cod sursa (job #2674868)
#include <bits/stdc++.h>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
const int Dim = 1e5 + 5;
vector<int> G[Dim], ans;
queue<int> coada;
int grad[Dim];
int n, m;
int main() {
f >> n >> m;
for(int i = 1; i <= m; ++i) {
int x, y;
f >> x >> y;
G[x].push_back(y);
++grad[y];
}
for(int i = 1; i <= n; ++i) {
if(grad[i] == 0) {
coada.push(i);
}
}
while(!coada.empty()) {
int node = coada.front();
ans.push_back(node);
coada.pop();
for(vector<int> :: iterator it = G[node].begin(); it != G[node].end(); ++it) {
--grad[*it];
if(grad[*it] == 0) {
coada.push(*it);
}
}
}
for(auto it = ans.begin(); it != ans.end(); ++it) {
g << *it << " ";
}
return 0;
}