Pagini recente » Cod sursa (job #542298) | Cod sursa (job #1245488) | Cod sursa (job #2098664) | Cod sursa (job #1049259) | Cod sursa (job #147979)
Cod sursa(job #147979)
#include<stdio.h>
struct entry
{
int val;
entry * adr;
}*start[102400], *stop[102400];
void add(int a, int b)
{
entry *p;
p=new entry;
p->val=b;
p->adr=NULL;
if (start[a]==NULL)
start[a]=stop[a]=p;
else
{
stop[a]->adr=p;
stop[a]=stop[a]->adr;
}
return;
}
int n, m;
char sel [102400];
void dfs(int nod)
{
printf("%d ", nod);
entry *p;
sel[nod]=1;
p=start[nod];
while(p)
{
if (!sel[p->val])
dfs(p->val);
p=p->adr;
}
}
int main()
{
freopen("sortaret.in", "r", stdin);
freopen("sortaret.out", "w", stdout);
int i, a, b, sol=0;
scanf("%d %d", &n, &m);
for (i=1; i<=m; i++)
{
scanf("%d %d", &a, &b);
add(a, b);
//add(b, a);
}
for (i=1; i<=n; i++)
{
if (!sel[i])
{
++sol;
dfs(i);
}
}
//printf("%d\n", sol);
fclose(stdout);
return 0;
}