Pagini recente » Cod sursa (job #1598504) | Cod sursa (job #3252633) | Cod sursa (job #2407470) | Cod sursa (job #2784348) | Cod sursa (job #1455930)
#include <iostream>
#include <vector>
#include <stdio.h>
#include <stack>
#define NMax 50005
using namespace std;
int N,M;
vector <int> Graf[NMax];
stack <int> Stiva;
bool viz[NMax];
void Citire()
{
freopen("sortaret.in","r",stdin);
int x,y;
scanf("%d %d ",&N,&M);
for(int i=0;i<M;i++)
{
scanf("%d%d",&x,&y);
Graf[x].push_back(y);
}
}
void DFS(int index){
int j;
viz[index] = 1;
for (j=0; j<Graf[index].size(); j++)
if (viz[Graf[index][j]] == 0)
DFS(Graf[index][j]);
viz[index] = 2;
Stiva.push(index);
}
void Write()
{
freopen("sortaret.out","w",stdout);
for(int i=1;i<=N;i++)
if(viz[i]==0)
DFS(i);
while(!Stiva.empty())
{
printf("%d ",Stiva.top());
Stiva.pop();
}
}
int main()
{
Citire();
Write();
}