Pagini recente » Cod sursa (job #1638855) | Cod sursa (job #57681) | Cod sursa (job #1600047) | Cod sursa (job #3227406) | Cod sursa (job #1484881)
#include<cstdio>
#include<vector>
using namespace std;
vector<int>L[50100];
int n,m,i,j,a,b,nr,v[50100],x[50100],t[50100];
FILE *f,*g;
void dfs(int nod){
v[nod]=1;
for(int i=0;i<L[nod].size();i++){
if(v[ L[nod][i] ]==0)
dfs(L[nod][i]);
}
x[++nr]=nod;
}
int main(){
f=fopen("sortaret.in","r");
g=fopen("sortaret.out","w");
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=m;i++){
fscanf(f,"%d%d",&a,&b);
t[b]=1;
L[a].push_back(b);
}
for(i=1;i<=n;i++){
if(!t[i])
dfs(i);
}
for(i=nr;i>=1;i--){
fprintf(g,"%d ",x[i]);
}
fclose(f);
fclose(g);
return 0;
}