Cod sursa(job #2134060)

Utilizator marcudanfDaniel Marcu marcudanf Data 17 februarie 2018 16:31:38
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int pos[1005][30];
bool ok[30][30];
int n, m, sol;

int main(){
	fin >> n >> m;
	while(m--){
		char i, j;
		fin >> i >> j;
		i -= 'a';
		j -= 'a';
		ok[(int)i][(int)j] = ok[(int)j][(int)i] = 1;;
	}
	for(int i = 0; i < 26; i++)
		pos[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(!ok[j][k])
					pos[i][j] = (pos[i][j] + pos[i - 1][k]) % 104659;
	for(int i = 0; i < 26; i++)
		sol = (sol + pos[n][i]) % 104659;
	fout << sol;
	return 0;
}