Cod sursa(job #424899)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 25 martie 2010 12:07:34
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<stdio.h>
FILE*f=fopen("nrcuv.in","r");
FILE*g=fopen("nrcuv.out","w");
int d[27][27],a[1005][27],m,i,u,v,ii,s,j,n;
int main () {
	// a[i][j]=numarul de siruri de lungime i care se termina in litera j;
	fscanf(f,"%d %d\n",&n,&m);
	for(i=1;i<=m;i++){
		fscanf(f,"%c %c\n",&u,&v);
		u=u-'a'+1;
		v=v-'a'+1;
		d[u][v]=d[v][u]=1;
	}
	for(i=1;i<=26;i++)
		a[1][i]=1;
	for(i=2;i<=n+1;i++){
		for(ii=1;ii<=26;ii++){
			s=0;
			for(j=1;j<=26;j++)
				if(d[ii][j]==0)
					s+=(a[i-1][j])%104659;
			a[i][ii]=s%104659;
		}
	}
	s=0;
	for(i=1;i<=26;i++)
		s+=(a[n][i])%104659;
	fprintf(g,"%d",s%104659);
	
	fclose(f);
	fclose(g);
	return 0;
}