Pagini recente » Cod sursa (job #1166857) | Cod sursa (job #353039) | Cod sursa (job #2074632) | Cod sursa (job #1557489) | Cod sursa (job #794446)
Cod sursa(job #794446)
#include <iostream>
#include <fstream>
#include <vector>
#define DN 104659
using namespace std;
vector<char> list[35];
bool viz[35][35];
int dp[1005][35]; // dp[i][j] = nr max de posibilitati de lungimea i care se termina cu litera j
int main()
{
int n,m;
ifstream f("nrcuv.in");
ofstream g("nrcuv.out");
f>>n>>m;
for(int i=1;i<=m;i++)
{
char l1,l2;
f>>l1>>l2;
viz[l1-'a'][l2-'a']=1;
viz[l2-'a'][l1-'a']=1;
}
for(int j=0;j<=25;j++)
dp[1][j]=1;
for(int i=2;i<=n;i++)
{
for(int j=0;j<=25;j++)
{
// litera curenta j
for(int k=0;k<=25;k++)
if(viz[j][k]==0)
dp[i][j]=(dp[i][j]+dp[i-1][k])%DN;
}
}
int S=0;
for(int j=0;j<=25;j++)
S=(S+dp[n][j])%DN;
g<<S;
return 0;
}