Cod sursa(job #2140341)

Utilizator DimaTCDima Trubca DimaTC Data 23 februarie 2018 11:53:25
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<bits/stdc++.h>

using namespace std;

const int P=104659;
bool OK[30][30];
int DP[1005][30];
long long rs;
int n,k;

int main() { ifstream cin("nrcuv.in"); ofstream cout("nrcuv.out");
	cin>>n>>k;
	
	for (int i=0; i<k; i++) {
		char a,b;
		cin>>a>>b;
		OK[a-'a'][b-'a']=1;
		OK[b-'a'][a-'a']=1;
	}
	
	for (int i=0; i<26; i++) DP[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]) DP[i][k]=(DP[i][k]+DP[i-1][j])%P;
			}
		}
	}
	
	for (int i=0; i<26; i++) rs=(rs+DP[n][i])%P;
	cout<<rs;
	
	
	
	
	return 0;
}