Cod sursa(job #2653141)

Utilizator BogdanTicuTicu Bogdan Valeriu BogdanTicu Data 27 septembrie 2020 02:55:33
Problema Lista lui Andrei Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
int dp[30][30],mat[1000][30];
const int MOD=104659;
int main()
{
	int n,m;
	in>>n>>m;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
		{
			char a,b;
			in>>a>>b;
			mat[a-'a'][b-'a']=1;
			mat[a-'a'][b-'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(mat[j][k]==0 && mat[k][j]==0)
					dp[i][j]=(dp[i][j]+dp[i-1][k])%MOD;
		}
	}
	int ans=0;
	for(int i=0;i<26;i++)
		ans=(ans+dp[n][i])%MOD;
	out<<ans<<"\n";
	return 0;
}