Cod sursa(job #1464415)

Utilizator cojocarugabiReality cojocarugabi Data 23 iulie 2015 14:41:19
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
# include <bits/stdc++.h>
using namespace std;
ifstream fi("nrcuv.in");
ofstream fo("nrcuv.out");
bool s[26][26];
const int mod = 104659;
int dp[1005][26];
int main(void)
{
    int n,m;
    fi>>n>>m;
    for (int i = 0;i < 26;++i)
        for (int j = 0;j < 26;++j) s[i][j] = 1;
    char x,y;
    while (m --)
    {
        fi>>x>>y;
        x -= 'a';y -= 'a';
        s[x][y] = s[y][x] = 0;
    }
    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 (s[j][k]) dp[i][j] += dp[i-1][k],dp[i][j] %= mod;
    }
    int ans = 0;
    for (int i = 0;i < 26;++i) ans += dp[n][i],ans %= mod;
    return fo << ans << '\n',0;
}