Cod sursa(job #803766)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 28 octombrie 2012 11:33:45
Problema Lista lui Andrei Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdio.h>
using namespace std;
FILE *f=fopen("nrcuv.in","r");
FILE *g=fopen("nrcuv.out","w");
int n,m,nr[201][201];
bool ver[201][201];

int main(){
	register int i,j,k;
	char ch1,ch2;
	
	fscanf(f,"%d %d\n",&n,&m);
	for(i=1;i<=m;i++){
		fscanf(f,"%c %c\n",&ch1,&ch2);
		ver[ch1][ch2]=ver[ch2][ch1]=true;
	}
	
	for(i='a';i<='z';i++)
		nr[i][1]=1;
	
	for(i=2;i<=n;i++){
		//calculam pt fiecare litera cate cuvinte de lungimea i se termina in ea
		for(j='a';j<='z';j++){
			for(k='a';k<='z';k++){
				if(!ver[j][k])
					nr[j][i]+=nr[k][i-1];
			}
		}
	}
	
	long long s=0;
	for(i='a';i<='z';i++){
		s+=nr[i][n];
	}
	fprintf(g,"%lld",s);
	fclose(f);
	fclose(g);
	return 0;
}