Pagini recente » Cod sursa (job #2868468) | Cod sursa (job #1626928) | Cod sursa (job #1926821) | Cod sursa (job #1224037) | Cod sursa (job #1966621)
#include<cstdio>
#include<vector>
#define N_MAX 50000
using namespace std;
vector<int>L[N_MAX+1];
int s[N_MAX], nr, n, m;
bool used[N_MAX+1];
void Read()
{
int x, y, i;
FILE *fin = fopen("sortaret.in","r");
fscanf(fin,"%d%d",&n,&m);
for(i=1; i<=m; i++)
{
fscanf(fin,"%d%d",&x,&y);
L[x].push_back(y);
}
fclose(fin);
}
void DFS(int x)
{
used[x] = true;
for(vector<int>::iterator it = L[x].begin(); it!=L[x].end(); it++)
if(!used[*it])
DFS(*it);
s[nr++] = x;
}
void Write()
{
FILE *fout = fopen("sortaret.out","w");
for(int i=nr-1; i>=0; i--)
fprintf(fout,"%d ",s[i]);
fprintf(fout,"\n");
fclose(fout);
}
int main()
{
Read();
for(int i=1; i<=n; i++)
if(!used[i])
DFS(i);
Write();
return 0;
}