Cod sursa(job #703228)

Utilizator dudutCancel Radu Constantin dudut Data 2 martie 2012 11:31:08
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<iostream>
#include<stdio.h>
using namespace std;
int i,j,n,m,a[100][100],x,y,s[100];
void cauta(int k)
{for(int i=1;i<=n;i++)
	if(a[k][i]==1)
		{if(s[i]==0)
			{printf("%d ",i);
			s[i]=1;}a[k][i]=a[i][k]=0;
		cauta(i);}
}

int main()
{freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
cin>>n>>m;
for(i=1;i<=m;i++)
	{scanf("%d%d",&x,&y);
		a[x][y]=a[y][x]=1;}
for(i=1;i<=n;i++)
	for(j=1;j<=n;j++)
		if(a[i][j]==1)
			{if(s[i]==0)
				{printf("%d ",i);s[i]=1;
				}
				if(s[j]==0)
					{printf("%d ",j);s[j]=1;}
				a[i][j]=a[j][i]=0;
				cauta( j);
			}
for(i=1;i<=n;i++)
	if(s[i]==0)
		printf("%d ",i);
}