Pagini recente » Cod sursa (job #503914) | Cod sursa (job #564652) | Cod sursa (job #857791) | Cod sursa (job #2397952) | Cod sursa (job #1004574)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
struct nod
{
vector<nod*> nexts;
int val;
nod(int vl)
{
val = vl;
}
void addChild(int val)
{
nexts.push_back(new nod(val));
}
};
int n,m;
vector<nod> nodes;
bool exista[100000];
nod* search(int val, nod* n)
{
if(n->val == val)
{
return n;
}
nod* t;
for(int i=0;i<n->nexts.size();i++)
{
t=search(val,n->nexts[i]);
if(t!=NULL)
{
return t;
}
}
return NULL;
}
void addNode(int a, int b)
{
if(!exista[a])
{
nodes.push_back(a);
exista[a]=true;
}
nod* t;
for(int i=0;i<nodes.size();i++)
{
t = search(a,&nodes[i]);
if(t)
{
t->addChild(b);
}
}
}
int nn = 1;
void show(nod nod)
{
if(nn<=n)
{
g<<nod.val;
nn++;
}
for(int i=0;i<nod.nexts.size();i++)
{
show(*nod.nexts[i]);
}
}
int main()
{
f>>n>>m;
for(int i=0;i<m;i++)
{
int t,y;
f>>t>>y;
addNode(t,y);
}
show(nodes[0]);
return 0;
}