Pagini recente » Cod sursa (job #2196506) | Cod sursa (job #1085997) | Cod sursa (job #2397968) | Cod sursa (job #971102) | Cod sursa (job #236525)
Cod sursa(job #236525)
#include<iostream>
#include<stdio.h>
FILE *f=fopen("dusman.in","r"),*g=fopen("dusman.out","w");
int st[1001],a[1001],k,n,m,k1,t=1;
void read()
{
fscanf(f,"%d %d %d",&n,&k,&m);
for(int k=1;k<=n;k++)
a[k]=k;
for(int i=1;i<=m;i++)
{
int v1,v2;
fscanf(f,"%d %d",&v1,&v2);
a[v2]=a[v1];
}
}
int valid(int i)
{
for(int j=1;j<i;j++)
if(st[j]==st[i])
return 0;
for(int k=1;k<i;k++)
if(a[st[k]]==a[st[k+1]])
return 0;
return 1;
}
void afisare()
{
for(int i=1;i<=n;i++)
fprintf(g,"%d ",st[i]);
}
void back(int i)
{
if(t)
for(int pval=1;pval<=n;pval++)
{
st[i]=pval;
if(valid(i))
if(i==n)
{
k1++;
if(k1==k)
afisare(),t=0;
}
else
back(i+1);
}
}
int main()
{
read();
back(1);
return 0;
}