Cod sursa(job #366094)

Utilizator petroMilut Petronela petro Data 20 noiembrie 2009 22:31:39
Problema Lista lui Andrei Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<stdio.h>
FILE *f=fopen("nrcuv.in","r");
FILE *g=fopen("nrcuv.out","w");

#define M 1001
long long a[M][28];
bool ok[28][28];
int n,m;

void det();

void cit()
{
	int i;
	char c,d;
	fscanf(f,"%d%d%c",&n,&m,&c);
	
	for(i=1;i<=m;i++)
	{
		fscanf(f,"%c",&c);		
		fscanf(f,"%c",&d);		
		fscanf(f,"%c",&d);
		ok[c-96][d-96]=true;
		fscanf(f,"%c",&c);
	}
	fclose(f);
}

int main()
{
	cit();
	det();
	return 0;
}

void det()
{
	int i,j,k;
	
	for(i=1;i<=26;i++)
		a[1][i]=1;
	
	for(i=2;i<=n;i++)
		for(j=1;j<=26;j++)
			for(k=1;k<=27;k++)
				if(ok[j][k]==false) a[i][j]=(a[i][j]+a[i-1][k])%104659;
			
	long s=0;
	for(i=1;i<=26;i++)
		s=(s+a[n][i])%104659;
	
	fprintf(g,"%ld\n",s);
	fclose(g);

}