Cod sursa(job #817917)

Utilizator andreea29Iorga Andreea andreea29 Data 17 noiembrie 2012 14:33:24
Problema Lista lui Andrei Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<fstream>
#include<cstring>
#define MOD 104659
#define Nmax 1010
using namespace std;
int n, m, d[Nmax][30], a[30][30], sol;
char s[5];
int main()
{
	ifstream f("nrcuv.in");
	ofstream h("nrcuv.out");
	f >> n >> m;
	for (int i = 1; i <= m; ++i)
	{
		f.getline(s, 5);
		a[int(s[0]) - 96][int(s[2]) - 96] = a[int(s[2]) - 96][int(s[0]) - 96] = 1;
	}
	f.close();
	for (int i = 0; i < 26; ++i)
		d[1][i] = 1;
	
	for (int i = 2; i <= n; ++i)
		for (int j = 0; j < 26; ++j)
			for (int k = 0; k < 26; ++k)
				if (a[k][j] == 0)
					d[i][j] = (d[i][j] + d[i - 1][k] + MOD) % MOD;
	
	sol = 0;
	for (int i = 0; i < 26; ++i)
		sol = (sol + MOD + d[n][i]) % MOD;
	
	h << (sol + MOD) % MOD << '\n';
	
	h.close();
	return 0;
}