Cod sursa(job #2499846)

Utilizator _Tudor_Tudor C _Tudor_ Data 26 noiembrie 2019 20:18:49
Problema Lista lui Andrei Scor 45
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>
#pragma warning(disable : 4996)

using namespace std;

ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");

const int Mod  = 104659;
const int NMax = 1000;
int n, m;
bool lit[26][26];
int dp[NMax + 5][26];
// nrcuv / infoarena

void read()
{
	fin >> n >> m;
	char c1, c2;
	while(fin >> c1 >> c2)
		lit[c1 - 'a'][c2 - 'a'] = lit[c2 - 'a'][c1 - 'a'] = 1;
}

int main()
{
	read();
	
	for(int i = 0; i < 26; i++)
		dp[1][i] = 1;

	for (int k = 2; k <= n; k++)
		for (int i = 0; i < 26; i++)
			for(int j = 0; j < 26; j++)
				if (!lit[i][j])
				{
					dp[k][i] += dp[k - 1][j];
					dp[k][i] %= Mod;
				}

	int total = 0;
	for(int i = 0; i < 26; i++)
		total += dp[n][i];

	fout << total;
}