Pagini recente » Cod sursa (job #1801995) | Cod sursa (job #963455) | Cod sursa (job #1523241) | Cod sursa (job #1641773) | Cod sursa (job #3237384)
#include <bits/stdc++.h>
std::ifstream f("sortaret.in");
std::ofstream g("sortaret.out");
int grad[50001], n, m;
bool viz[50001];
std::vector<int> v[50001], q;
void solve();
int main(){
f>>n>>m;
for(int i = 1, x, y; i <= m; ++i)
f>>x>>y, v[x].push_back(y),
grad[y]++;
solve();
return 0;
}
void solve(){
for(int i = 1; i <= n; ++i)
if(!grad[i])
q.push_back(i), --grad[i];
for(int i = 0; i < n; ++i){
for(auto j : v[q[i]]){
--grad[j];
if(!grad[j])
q.push_back(j), --grad[j];
}
}
for(auto i : q)
g<<i<<' ';
}