Pagini recente » Cod sursa (job #2277562) | Cod sursa (job #112989) | Cod sursa (job #1265457) | Cod sursa (job #89369) | Cod sursa (job #237385)
Cod sursa(job #237385)
#include<stdio.h>
int n,k,m,q,ok,sol[1001];
struct dusman{
int d[4];};
dusman a[1001];
int check(int val,int b){
int i,j;
for(i=1; i<b; ++i)
if(sol[i]==val)
return 0;
return 1;}
void back(int b){
int i,j;
if(b==n+1){
++q;
for(i=2; i<=n; ++i)
for(j=1; a[sol[i]].d[j]; ++j)
if(sol[i-1]==a[sol[i]].d[j]){
--q;
i=n+1;
break;}
if(q==k){
ok=1;
for(i=1; i<=n; ++i)
printf("%d ",sol[i]);}}
else
for(i=1; i<=n; ++i)
if(check(i,b)){
sol[b]=i;
if(!ok)
back(b+1);}}
void solve(){
int i,x,y,z;
scanf("%d%d%d",&n,&k,&m);
for(i=1; i<=m; ++i){
scanf("%d%d",&x,&y);
z=1;
while(a[x].d[z])
++z;
a[x].d[z]=y;
z=1;
while(a[y].d[z])
++z;
a[y].d[z]=x;}
back(1);}
int main(){
freopen("dusman.in","r",stdin);
freopen("dusman.out","w",stdout);
solve();
return 0;}