Pagini recente » Cod sursa (job #2465286) | Cod sursa (job #2219355) | Cod sursa (job #2937294) | Cod sursa (job #2712049) | Cod sursa (job #2278820)
#include <stack>
#include <iostream>
#include <fstream>
#include<vector>
#define ALB 0
#define GRI -1
#define NEGRU 1
#define MAXn 50000
using namespace std;
stack<int>s;
int n,m;
vector <int> v[MAXn+1];
int color[MAXn+1];
void citire()
{
ifstream f("sortaret.in");
f>>n>>m;
int a,b;
for(int i=1;i<=m;i++)
{
f>>a>>b;
v[a].push_back(b);
}
f.close();
}
void DFS(int i)
{
color[i]=GRI;
vector<int>::iterator it;
for(it=v[i].begin();it!=v[i].end();it++)
{
if(color[*it]==ALB)
DFS(*it);
}
color[i]=NEGRU;
s.push(i);
}
void afis()
{
ofstream g("sortaret.out");
while(!s.empty())
{
g<<s.top()<<' ';
s.pop();
}
g.close();
}
int main()
{
citire();
for(int i=1;i<=n;i++)
if(color[i]==ALB)
DFS(i);
afis();
return 0;
}