Cod sursa(job #422196)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 22 martie 2010 12:17:07
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<stdio.h>
#include<stdlib.h>
FILE*f=fopen("dusman.in","r");
FILE*g=fopen("dusman.out","w");
int i,x[1001],a[1001][1001],viz[1001],n,nrp,m,ii,jj;
int cond(int k){
	int ok;
	ok=1;
	if (k>1 && a[x[k]][x[k-1]] ==1)
		ok = 0;
	return ok;
}
void back(int k){
	int i;
	if(k==n+1){
		nrp--;
		if(nrp==0){
			for(i=1;i<=n;i++)
				fprintf(g,"%d ",x[i]);
			fclose(g);
			fclose(f);
			exit(0);
			
		}
		return;
	}
	for(i=1;i<=n;i++){
		if(viz[i]==0){
			viz[i]=1;
			x[k]=i;
			if (cond(k))
				back(k+1);
			viz[i]=0;
		}
	}
}

int main () {
	fscanf(f,"%d %d %d",&n,&nrp,&m);
	for(i=1;i<=m;i++){
		fscanf(f,"%d %d",&ii,&jj);
		a[ii][jj]=a[jj][ii]=1;
	}
	back(1);
//	fclose(f);
//	fclose(g);
	return 0;
}