Cod sursa(job #801115)

Utilizator SebiSebiPirtoaca George Sebastian SebiSebi Data 23 octombrie 2012 16:11:49
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<iostream>
#include<fstream>
using namespace std;

#define NMAX 1001
#define alfa 26
#define MOD 104659

int d[NMAX][alfa],a[NMAX][alfa];

int main ()
{
	int n,m,i,j,k,sol;
	char l1,l2;
	ifstream f("nrcuv.in");
	ofstream g("nrcuv.out");
	f>>n>>m;
	for(i=1;i<=m;i++) {
		f>>l1>>l2;
		a[l1-'a'][l2-'a']=1;
		a[l2-'a'][l1-'a']=1;
	}
	f.close();
	for(i=0;i<=alfa-1;i++) 
		d[1][i]=1;
	for(i=2;i<=n;i++)
		for(j=0;j<=alfa-1;j++)
			for(k=0;k<=alfa-1;k++)
				if(a[k][j]==0)
					d[i][j]=(d[i][j]+d[i-1][k])%MOD;
	sol=0;
	for(i=0;i<=alfa-1;i++)
		sol=(sol+d[n][i])%MOD;
	g<<sol;
	g.close();
	return 0;
}