Cod sursa(job #251483)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 2 februarie 2009 20:19:12
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
# include <stdio.h>
# include <stdlib.h>
int b[1000][1000],i,j,n,m,k,p,a[1000],x,y;
int valid (int i)
{
int j;
for (j=1;j<i;j++)
if (a[i]==a[j])
return 0;
return 1;
}
int sol (int i)
{
int j;
if (i!=n)
return 0;
for (j=0;j<n;j++)
if (b[a[j]][a[j+1]]==1)
return 0;
return 1;
}


void back (int i)
{
int val;
for (val=1;val<=n;val++)
{
a[i]=val;
if (valid (i))
if (sol (i))
{
p++;
if (p==k)
{
for (j=1;j<=n;j++)
printf ("%i ",a[j]);
exit (EXIT_SUCCESS);


}


}
else
back (i+1);
}
}




int main ()
{
freopen ("dusman.in","r",stdin);
freopen ("dusman.out","w",stdout);
scanf ("%i%i%i",&n,&k,&m);
for (i=0;i<n;i++)
{
scanf ("%i%i",&x,&y);
b[x][y]=1;
b[y][x]=1;
}
back (1);
return 0;
}