Cod sursa(job #1024066)

Utilizator LiquironIvan Liviu-Marian Liquiron Data 8 noiembrie 2013 08:57:51
Problema Lista lui Andrei Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <stdio.h>

FILE *f=fopen("nrcuv.in","r");
FILE *g=fopen("nrcuv.out","w");

int j,n,m,i,nr,x[1002];
char a[25][25],c1,c2;

void bktr(int k)
{
	int i;

    if(k<=n)
	{
		for(i=1;i<=26;i++)
		{
			x[k]=i;
			if(a[x[k]][x[k-1]]==0)
				bktr(k+1);
			if(k==n&&a[x[k]][x[k-1]]==0)
				nr++;
		}
	}
}

int main()
{
	fscanf(f,"%d%d\n",&n,&m);
	for(i=1;i<=26;i++)
		for(j=1;j<=26;j++)
			a[i][j]=0;
	for(i=1;i<=m;i++)
	{
		fscanf(f,"%c %c\n",&c1,&c2);
		a[c1-'a'+1][c2-'a'+1]=1;
		a[c2-'a'+1][c1-'a'+1]=1;
	}
	
	x[0]=0;
	bktr(1);
	
	fprintf(g,"%d",nr);

	return 0;
}