Pagini recente » Cod sursa (job #830584) | Cod sursa (job #3228498) | Cod sursa (job #1957012) | Cod sursa (job #1125903) | Cod sursa (job #1117072)
#include <iostream>
#include <fstream>
#include <list>
#include <vector>
#define NMax 500001
using namespace std;
list<int> v[NMax];
list<int> L;
vector<bool> viz;
vector<int> extD;
int n, m, x, y;
void visit(int i){
viz[i]=true;
cout<<"viz:"<<i<<"\n";
for(list<int>::iterator it=v[i].begin(); it!=v[i].end();it++)
if(!viz[*it])
visit(*it);
L.push_front(i);
}
int main(){
ifstream f("sortaret.in");
f>>n>>m;
extD=vector<int>(n+1, 0);
while(f>>x>>y)
v[x].push_back(y), extD[y]++;
viz=vector<bool>(n+1, false);
for(int i=1;i<=n;i++)
if(extD[i]==0)visit(i);
ofstream g("sortaret.out");
for(list<int>::iterator it=L.begin(); it!=L.end();it++)
g<<*it<<" ";
return 0;
}