Cod sursa(job #3204355)

Utilizator cris36Matasa Cristi cris36 Data 16 februarie 2024 12:59:23
Problema Lista lui Andrei Scor 45
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <fstream>

using namespace std;

#define mod 104659

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



bool v[26][26] = {};
int d[26][1001] = {};

int main() {
	int n, m;
	fin >> n >> m;
	char l1, l2;
	

	for (int i = 0; i < m; i++)
	{
		fin >> l1 >> l2;
		v[l1 - 'a'][l2 - 'a'] = v[l2 - 'a'][l1 - 'a'] = 1;
	}
	
	for (int i = 0; i < 26; i++)
		d[i][1] = 1;

	for (int i = 2; i <= n; i++)
	{
		for (int l = 0; l < 26; l++)
		{
			d[l][i] = 0;
			for (int ll = 0; ll < 26; ll++)
			{
				if (v[l][ll] == 0)
					d[l][i] += d[ll][i - 1] % mod;
			}
		}
	}

	int sum = 0;
	for (int i = 0; i < 26; i++)
		sum += d[i][n] % mod;

	fout << sum;
}