Cod sursa(job #794311)

Utilizator CS-meStanca Marian Ciprian CS-me Data 6 octombrie 2012 10:18:43
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<stdio.h>
#define MOD 104659
FILE *fin=fopen("nrcuv.in","r");
FILE *fout=fopen("nrcuv.out","w");
int cuv[2][30],m,n,i,j,pas,s;
int reg[30][30];
char a,b;

int main(){
	
	fscanf(fin,"%d %d\n",&n,&m);
	
	for(i = 1; i<=m; i++){
		fscanf(fin,"%c %c \n",&a,&b);
		reg[a-'a'][b-'a']=1;
		reg[b-'a'][a-'a']=1;
	}
	
	for(i = 0; i<='z'-'a'; i++){
		cuv[1][i]=1;
	}
	
	for(pas = 2; pas<=n; pas++){
		
		for(i = 0; i<='z'-'a'; i++){
			s=0;
			for(j=0; j<='z'-'a'; j++){
				if(reg[i][j]==0){
					s+=cuv[ (pas-1)%2][j];
				}
			}
			
			cuv[pas%2][i]=s%MOD;
		}
		
	}
	s=0;
	for(i=0;i<='z'-'a';i++){
		s+=cuv[n%2][i];
	}
	s%=MOD;
	
	fprintf(fout,"%d",s);
	
	return 0;
}