Pagini recente » Cod sursa (job #117602) | Cod sursa (job #1199479) | Cod sursa (job #800293) | Cod sursa (job #486665) | Cod sursa (job #504881)
Cod sursa(job #504881)
#include <cstdio>
#include <deque>
#include <fstream>
#include <vector>
using namespace std;
#define k 50001
#define pb push_back
vector<int> v[k];
deque<int> q;
int c[k];
int n,m;
void read (){
ifstream in ("sortaret.in");
in>>n>>m;
for(int a,b,i=1;i<=m;++i){
in>>a>>b;
v[a].pb(b);
++c[b];
}
in.close ();
}
void sorttop (){
for(int i=1;i<=n;++i)
if(c[i]==0)
q.pb(i);
for(int j,i=1;i<=n;++i){
j=q[i-1];
for(vector<int>::iterator it = v[j].begin();it != v[j].end();++it){
--c[*it];
if(c[*it] == 0)
q.pb(*it);
}
}
}
void write (){
freopen ("sortaret.out","w",stdout);
for(;!q.empty();q.pop_front())
printf("%d ",q.front());
printf("\n");
}
int main ()
{
read ();
sorttop ();
write ();
return 0;}