Pagini recente » Cod sursa (job #1128253) | Cod sursa (job #3301847) | Cod sursa (job #2050100) | Borderou de evaluare (job #1036200) | Cod sursa (job #2080827)
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>
#define NMAX 100
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
vector<vector <int> > vec(NMAX);
vector<bool> vizitare(NMAX);
std::stack<int> stiva;
void sortaretopologica(int i)
{
int j,r;
vizitare[i]=1;
for(j=0;j!=vec[i].size();j++)
{
if(!vizitare[vec[i][j]])
sortaretopologica(vec[i][j]);
}
stiva.push(i);
}
int main()
{
int a,b,c,d;
f>>a>>b;
for(int i=1;i<=b;i++)
{
f>>c>>d;
vec[c].push_back(d);
// cout<<d;
}
for(int i=1;i<=a;i++)
{
if(!vizitare[i])
sortaretopologica(i);
}
while(!stiva.empty())
{
g<<stiva.top()<<' ';
stiva.pop();
}
return 0;
}