Cod sursa(job #734023)

Utilizator andunhillMacarescu Sebastian andunhill Data 13 aprilie 2012 13:39:42
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<fstream>
using namespace std;

#define mod % 104659

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

int N, M;
bool block[27][27];
int av[27];
int A[1001][27];

int main()
{	int i, j, k, ans;
	char a, b;
	
	f>>N>>M;
	for(i = 1; i <= M; i++)
	{	f>>a>>b;
		block[a - 'a'][b - 'a'] = 1;
		block[b - 'a'][a - 'a'] = 1;
	}
	
	for(i = 0; i < 26; i++) 
		A[1][i] = 1;
	
	for(i = 2; i <= N; i++)
		for(j = 0; j < 26; j++)
		{	A[i][j] = 0;
			
			for(k = 0; k < 26; k++)
			{	if(block[k][j]) continue;
				A[i][j] += A[i - 1][k];
				A[i][j] = A[i][j] mod;
			}
		}
	
	for(i = ans = 0; i < 26; i++)
	{	ans += A[N][i];
		ans =ans mod;
	}
	
	g<<ans;
	f.close();
	g.close();
	return 0;
}