Pagini recente » Cod sursa (job #2064910) | Cod sursa (job #747837) | Cod sursa (job #1211536) | Cod sursa (job #3217647) | Cod sursa (job #115339)
Cod sursa(job #115339)
#define DMAX 50
#include<stdio.h>
long nr,ok,aux,num,x,y,i,j,b[DMAX][DMAX];
long n,k,m;
long a[DMAX][DMAX];
int main()
{
freopen("dusman.in","r",stdin);
freopen("dusman.out","w",stdout);
scanf("%ld %ld %ld",&n,&k,&m);
for(i=1;i<=m;i++)
{
scanf("%ld %ld",&x,&y);
b[x][y]=b[y][x]=1;
b[x][0]++; b[y][0]++;
}
nr=1;
for(i=2;i<=n;i++)
nr=nr*i;
for(i=1;i<=n;i++)
a[1][i]=i;
for(i=2;i<=nr-1;i++)
{
for(j=1;j<=n;j++)
{
a[i][j]=a[i-1][j]+1;
if(a[i][j]==n+1)
a[i][j]=1;
}
if((i+1)%n==0)
{
++i;
for(j=2;j<=n;j++)
a[i][j-1]=a[i-1][j];
a[i][n]=a[i-1][1];
}
}
do
{
ok=0;
for(i=1;i<nr;i++)
{
if(a[i][1]>a[i+1][1])
{
for(j=1;j<=n;j++)
{
aux=a[i][j];
a[i][j]=a[i+1][j];
a[i+1][j]=aux;
ok=1;
}
}
else
if(a[i][1]==a[i+1][1])
{
j=1;
while(a[i][j]==a[i+1][j])
j++;
if(a[i][j+1]>a[i+1][j+1])
{
for(j=1;j<=n;j++)
{
aux=a[i][j];
a[i][j]=a[i+1][j];
a[i+1][j]=aux;
ok=1;
}
}
}
}
}while(ok==1);
num=0;
for(i=1;i<=nr;i++)
{
ok=1;
for(j=1;j<n;j++)
if(b[a[i][j]][a[i][j+1]]==1)
ok=0;
if(ok==1)
num++;
if(num==k)
{
for(j=1;j<=n;j++)
printf("%ld ",a[i][j]);
}
}
return 0;
}