Pagini recente » Cod sursa (job #2959925) | Cod sursa (job #1350798) | Cod sursa (job #2720261) | Cod sursa (job #1765935) | Cod sursa (job #3224946)
#include <bits/stdc++.h>
#define MAXN 50000
using namespace std;
vector <int> v[MAXN + 1];
bitset <MAXN + 1> frecv;
int ns, s[MAXN + 1];
void dfs(int node){
frecv[node] = 1;
for(auto &i : v[node])
if(frecv[i] == 0)
dfs(i);
s[++ns] = node;
}
int main(){
FILE *fin, *fout;
int n, i, y, x, m;
fin = fopen( "sortaret.in", "r" );
fscanf(fin, "%d%d", &n, &m);
for( i = 1; i <= m; i++ ){
fscanf(fin, "%d%d", &x, &y);
v[x].push_back(y);
}
for( i = 1; i <= n; i++ )
if(frecv[i] == 0)
dfs(i);
fclose( fin );
fout = fopen( "sortaret.out", "w" );
while( ns > 0 ){
fprintf(fout, "%d ", s[ns--]);
}
fclose( fout );
return 0;
}