Pagini recente » Cod sursa (job #3262196) | Cod sursa (job #1104242) | Cod sursa (job #3128044) | Cod sursa (job #1599809) | Cod sursa (job #2810060)
#include <bits/stdc++.h>
using namespace std;
FILE *f=fopen("sortaret.in","r");
FILE *g=fopen("sortaret.out","w");
vector <int> adj[50001];
vector <int> l;
int marcat[50001];
int x,y,n,m;
void dfs(int nod){
marcat[nod]=1;
for(int i=adj[nod].size()-1;i>=0;--i)
if(marcat[adj[nod][i]]==0)
dfs(adj[nod][i]);
marcat[nod]=2;
//cout<<nod<< "
l.push_back(nod);
}
int main()
{
fscanf(f,"%d %d",&n,&m);
while(m--){
fscanf(f,"%d %d ",&x,&y);
adj[x].push_back(y);
}
for(int i=1;i<=n;++i)
if(marcat[i]==0)
dfs(i);
for(int i=l.size()-1;i>=0;--i)
fprintf(g,"%d ",l[i]);
}