Cod sursa(job #473239)

Utilizator bugyBogdan Vlad bugy Data 28 iulie 2010 14:38:16
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>
#include<string.h>

int n,m,i,j,k,t[27][27];
char a,b;
int din[1001][27];

int main()
{
	FILE *f=fopen("nrcuv.in","r"), *g=fopen("nrcuv.out","w");
	fscanf(f,"%d %d", &n, &m);
	for(i=1;i<=m;i++) // marchez lista lui andrei
	{
		fscanf(f,"%c%c%c%c", &a,&a, &b, &b);
		t[a-'a'+1][b-'a'+1]=1;
		t[b-'a'+1][a-'a'+1]=1;
	}
	// numarul de siruri de lungime i ce contin ultima litera j 
	for(i=1;i<=26;i++)  
		din[1][i]=1; 
	for(i=2;i<=n;i++)
		for(j=1;j<=26;j++)
			for(k=1;k<=26;k++)
				if(t[j][k]==0)
				{
					din[i][j]+=din[i-1][k];
					din[i][j]=din[i][j]%104659;
				}
	int sum=0;
	for(i=1;i<=26;i++)
		sum=(sum+din[n][i])%104659;
	fprintf(g,"%d\n", sum);
	
fclose(f);
fclose(g);
	return 0;
}