Cod sursa(job #491898)

Utilizator unknownliviuMaria Liviu Valentin unknownliviu Data 12 octombrie 2010 19:10:00
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<fstream>
using namespace std;
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
int n,m,a[1010][27];
bool val[27][27];
void read()
{
	in>>n>>m;
	char a,b;
	for(int i=1;i<=m;i++)
	{
		in>>a>>b;
		val[a-'a'+1][b-'a'+1]=val[b-'a'+1][a-'a'+1]=true;
	}
}
void solve()
{
	for(int i=1;i<=26;i++)
		a[1][i]=1;
	for(int i=2;i<=n;i++)
		for(int j=1;j<=26;j++)
			for(int k=1;k<=26;k++)
				if(!val[j][k])
					a[i][j]=(a[i][j]+a[i-1][k])%104659;
	int sum=0;
	for(int i=1;i<=26;i++)
		sum=(sum+a[n][i])%104659;
	out<<sum;
	out<<"\n";
}
void af()
{
	for(int i=1;i<=26;i++)
		out<<a[2][i]<<" ";
	out<<"\n";
}

int main()
{
	read();
	solve();
	//af();
	return 0;
}