Pagini recente » Cod sursa (job #1485464) | Cod sursa (job #771672) | Cod sursa (job #9455) | Cod sursa (job #1050528) | Cod sursa (job #1041849)
#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
struct ed
{
int x,y;
};
int n,m,k=0;
int a[MAXN];
int b[MAXN];
vector<int> ARC[MAXN];
int main()
{
fin>>n>>m;
memset(a,0,sizeof(a));
for (int i=0; i<m; i++)
{
ed e;
fin>>e.x>>e.y;
e.x--;
e.y--;
a[e.y]++;
ARC[e.x].push_back(e.y);
}
for (int i=0; i<n; i++)
if (a[i]==0)
b[k++] = i;
for (int i=0; i<n; i++)
{
int x;
x = b[i];
for (int j= 0; j<ARC[i].size(); j++)
{
a[ARC[i][j]]--;
if (!a[ARC[i][j]])
b[k++]=ARC[i][j];
}
}
for (int i=0; i<n; i++)
fout<<b[i]+1<<' ';
return 0;
}