Cod sursa(job #695993)

Utilizator soriynSorin Rita soriyn Data 28 februarie 2012 16:09:48
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<fstream>

using namespace std;

int mod=104659;
bool uz[30][30];
int dp[1005][30];
int n,m;
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");

void read()
{
	in>>n>>m;
	char x,y;
	for(int i=1;i<=m;i++)
	{
		in>>x>>y;
		uz[x-96][y-96]=1;
		uz[y-96][x-96]=1;
	}
}

void solve()
{
	for(int i=1;i<=26;i++)
		dp[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(uz[j][k]==0)
			   {
				   dp[i][j]=(dp[i][j]+dp[i-1][k])%mod;
			   }
		   }
}

int main()
{
	read();
	solve();
	int sol=0;
	for(int i=1;i<=27;i++)
		sol=(sol+dp[n][i])%mod;
	out<<sol;
}