Pagini recente » Sandbox (cutiuţa cu năsip) | Cod sursa (job #1167823) | Cod sursa (job #1668434) | Cod sursa (job #982420) | Cod sursa (job #2953609)
#include <bits/stdc++.h>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
const int N = 5e4 + 5;
int n, m, x, y, deg[N];
vector<int> v[N];
vector<int>::iterator it;
queue<int> q;
void prep(), solve();
int main(){
prep();
solve();
return 0;
}
void prep(){
f >> n >> m;
for (; m; m--){
f >> x >> y;
v[x].push_back(y);
deg[y]++;
}
for (int i = 1; i <= n; i++)
if (deg[i] == 0) q.push(i);
}
void solve(){
for (int i = 1; i <= n; i++){
x = q.front();
g << x << ' ';
q.pop();
for (it = v[x].begin(); it != v[x].end(); it++){
deg[*it]--;
if (deg[*it] == 0) q.push(*it);
}
}
}