Cod sursa(job #132376)

Utilizator swift90Ionut Bogdanescu swift90 Data 5 februarie 2008 18:42:29
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<stdio.h>
int dus[1005][1005],sol[1010],viz[1010];
int n,m,k;
void afis(){
	for(int i=1;i<=n;++i)
		printf("%d ",sol[i]);
	printf("\n");
}
void back(int i){
	int j;
	if(k<0)
		return;
	if(i>n){
		--k;
		if(k==0)
			afis();
		return;
	}
	for(j=1;j<=n;++j){
		if(viz[j]==0 && dus[sol[i-1]][j]==0){
			viz[j]=1;
			sol[i]=j;
			back(i+1);
			viz[j]=0;
		}
	}
}
int main(){
	freopen("dusman.in","r",stdin);
	freopen("dusman.out","w",stdout);
	int i,a,b;
	scanf("%d%d%d",&n,&k,&m);
	for(i=0;i<m;++i){
		scanf("%d%d",&a,&b);
		dus[a][b]=1;
		dus[b][a]=1;
	}
	
	back(1);
	
	fclose(stdin);
	fclose(stdout);
	return 0;
}