Pagini recente » Borderou de evaluare (job #1494011) | Cod sursa (job #1801889) | Cod sursa (job #414309) | Cod sursa (job #2272508) | Cod sursa (job #1902191)
#include <iostream>
#include <fstream>
using namespace std;
int n,m;
bool a[50001][50001];
void Read()
{
ifstream f("sortaret.in");
f>>n>>m;
int x,y;
for(int i=1;i<=m;i++)
{
f>>x>>y;
a[x][y]=1;
}
}
int culoare[50001],p[100],tdesc[100],tfin[100],timp,st[50001],k;
void DFS(int u)
{
culoare[u]=1;
//tdesc[u]=++timp;
for(int v=1;v<=n;v++)
{
if(culoare[v]==0&&a[u][v]==1)
{
p[v]=u;
DFS(v);
}
}
culoare[u]=2;
//tfin[u]=++timp;
st[++k]=u;
}
void Write()
{
ofstream g("sortaret.out");
for(int i=n;i>0;i--)
g<<st[i]<<" ";
}
int main()
{
Read();
for(int u=1;u<=n;u++)
if(culoare[u]==0)
DFS(u);
Write();
return 0;
}