Pagini recente » Cod sursa (job #1862853) | Cod sursa (job #863115) | Cod sursa (job #2711055) | Cod sursa (job #540821) | Cod sursa (job #2341438)
#include <iostream>
#include <fstream>
using namespace std;
#define Nmax 50100
ifstream f("sortaret.in");
ofstream g("sortaret.out");
struct stack{
long length;
long elems[Nmax];
void push( int x ){
elems [++length] = x;
}
int pull(){
length--;
return elems [length+1];
}
};
struct edges{
long a;
long b;
bool visited = 0;
};
void read_data( edges e[], long &length, long &vertices ){
f>>vertices>>length;
for(int i=1; i<=length; i++)
f>>e[i].a>>e[i].b;
}
void recursion( bool visited[],edges e[], long length ,int x,stack &s){
visited[x] = true;
for(int i=1; i<=length; i++){
if(x == e[i].a && !visited[e[i].b])
recursion(visited,e,length,e[i].b,s);
}
s.push(x);
}
void print_data(stack s){
while(s.length>=1){
g<<s.pull()<<" ";
}
}
int main()
{
edges e[Nmax];
long length,vertices;
bool visited[Nmax] = {0};
stack s;
read_data(e,length,vertices);
recursion(visited,e,length,e[1].a,s);
print_data(s);
}