Pagini recente » Cod sursa (job #502315) | Cod sursa (job #350813) | Cod sursa (job #40260) | Cod sursa (job #2884065) | Cod sursa (job #1045999)
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
#include <string.h>
#define min(a,b) ((a<b)?a:b)
#define max(a,b) ((a<b)?b:a)
#define abs(a) ((a<0)?-a:a)
#define INF 1000001
using namespace std;
#ifndef TEST
ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");
#else
ifstream fin ("input.txt");
ofstream fout ("output.txt");
#endif
#define MAXN 50000
int n,m;
vector<int> L,S;
char a[MAXN];
vector<int> E[MAXN];
void DFS(int x)
{
if (a[x]) return;
a[x]=1;
for (int i=0; i<E[x].size(); i++)
{
DFS(E[x][i]);
}
L.push_back(x);
S.erase( find ( S.begin(), S.end(), x));
}
int main()
{
memset(a,0,sizeof(a));
fin>>n>>m;
for (int i=0; i<n; i++)
S.push_back(i);
for (int i=0; i<m; i++)
{
int x,y;
fin>>y>>x;
E[x-1].push_back(y-1);
}
while (!S.empty())
{
int t;
t = S.front();
DFS(t);
}
for (int i=0; i<n; i++)
fout<<L[i]+1<<' ';
return 0;
}