Pagini recente » Cod sursa (job #572736) | Cod sursa (job #1442924) | Cod sursa (job #1331097) | Cod sursa (job #2897761) | Cod sursa (job #253780)
Cod sursa(job #253780)
#include<fstream>
#include<vector>
using namespace std;
#define NMAX 100010
ifstream f ("sortaret.in");
ofstream g ("sortaret.out");
vector <int> A[NMAX];
int viz[NMAX], N, M, x, y, i, nr=0;
typedef struct nod* Nod;
struct nod
{
int Key;
Nod Next;
};
Nod V[NMAX];
Nod p2=NULL,c2=NULL;
void add(Nod &dest, int val)
{
Nod p;
p = new nod;
p->Key = val;
p->Next = dest;
dest = p;
}
void push(int x)
{
c2=new nod;
c2->Key=x;
if(!p2) c2->Next=NULL;
else c2->Next=p2;
p2=c2;
}
void write()
{
for(c2=p2;c2&&c2->Next;c2=c2->Next) g<<c->Key<<" ";
g<<"\n";
}
void dfs(int x)
{
viz[x]=1;
push(x);
Nod p;
for(p=V[x];p;p=p->Next) if(!viz[p->Key]) dfs(p->Key);
}
int main()
{
f>>N>>M;
for(i=1;i<=M;i++) f>>x>>y, add(V[x], y), add(V[y], x);
for(i=1;i<=N;i++) if(!viz[i]) dfs(i);
write();
g.close();
return 0;
}