Cod sursa(job #649250)

Utilizator maritimCristian Lambru maritim Data 15 decembrie 2011 17:31:52
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<stdio.h>
#include<fstream>
using namespace std;

ifstream f("nrcuv.in");
ofstream g("nrcuv.out");

#define MaxAl 31
#define Mod 104659

int N,M,MAX,A[MaxAl][MaxAl],B[MaxAl],C[MaxAl];
char a,b;

int main()
{
	f >> N >> M;
	for(int i=1;i<=M;i++)
	{
		f >> a >> b;
		A[a-'a'+1][b-'a'+1] = A[b-'a'+1][a-'a'+1] = 1;
	}
	
	for(int i=1;i<=26;i++)
		B[i] = 1;
	
	for(int i=2;i<=N;i++)
	{
		for(int j=1;j<=26;j++)
			for(int k=1;k<=26;k++)
				if(!A[j][k])
					C[k] = (C[k]+B[j])% Mod;
				
		for(int j=1;j<=26;j++)
			B[j] = C[j], C[j] = 0;
	}
	
	for(int i=1;i<=26;i++)
		MAX += B[i];
	
	g << MAX % Mod;
	
	return 0;
}