Pagini recente » Cod sursa (job #426470) | Cod sursa (job #2968475) | Cod sursa (job #942001) | Cod sursa (job #132237) | Cod sursa (job #1059548)
#include<fstream>
#include<vector>
using namespace std;
vector <int> v[50005];
int n,m,q[50005],deg[50005];
void citire() {
ifstream in("sortaret.in");
int i,x,y;
in>>n>>m;
for(i=1;i<=m;i++) {
in>>x>>y;
v[x].push_back(y);
deg[y]++;
}
}
void solve() {
int i,x;
vector<int> :: iterator it;
for(x = 1; x <= n; x++)
if(deg[x] == 0)
q[++q[0]] = x;
for(i = 1; i <= n; i++) {
x = q[i];
for(it = v[x].begin(); it != v[x].end(); ++it){
deg[*it]--;
if(deg[*it] == 0)
q[++q[0]] = *it;
}
}
}
void afisare () {
ofstream out ("sortaret.out");
int i;
for(i=1;i<=n;i++)
out<<q[i]<<" ";
out<<'\n';
out.close();
}
int main (){
citire();
solve();
afisare();
return 0;
}