Pagini recente » Cod sursa (job #2337035) | Cod sursa (job #2264892) | Cod sursa (job #1515654) | Cod sursa (job #2527525) | Cod sursa (job #253415)
Cod sursa(job #253415)
# include <stdio.h>
# include <stdlib.h>
int b[1005][1005],i,j,n,m,k,p,a[1005],x,y,c[1005],d[1005],q[1005];
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!=9)
return 0;
for (j=0;j<n;j++)
if (b[q[a[j]]][q[a[j+1]]]==1)
return 0;
return 1;
}
void back (int i)
{
int val;
for (val=1;val<=9;val++)
{
a[i]=val;
if (valid (i))
if (sol (i))
{
p++;
if (p==k)
{
for (j=1;j<=9;j++)
printf ("%i ",q[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<m;i++)
{
scanf ("%i%i",&x,&y);
b[x][y]=1;
b[y][x]=1;
}
for (i=1;i<=n;i++)
c[i]=i;
d[1]=1;
c[1]=0;
j=2;
for (i=2;i<=n;i++)
{
if (c[i]!=0)
if (b[d[j-1]][i]==0)
{
d[j]=i;
j++;
c[i]=0;
if (i>4)
i=i-4;
else
i=1;
if (j==n-8)
i=n;
}
}
for (i=1;i<j;i++)
printf ("%i ",d[i]);
j=1;
for (i=1;i<=n;i++)
if (c[i]!=0)
{
q[j]=i;
j++;
}
back (1);
return 0;
}