Cod sursa(job #3340660)

Utilizator kkcalinMarin Calin kkcalin Data 15 februarie 2026 16:20:32
Problema Lista lui Andrei Scor 45
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <bits/stdc++.h>
using namespace std;

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

#define MOD 104659
bool allowed[128][128];
long long dp[1001][1001];

int main ()
{
    int n, m;
    in >> n >> m;
    
    for (int i = 0; i < m; i++)
    {
        char a, b;
        in >> a >> b;
        
        allowed[(int)a][(int)b] = true;
        allowed[(int)b][(int)a] = true;
    }
    
    for (int i = 97; i <= 122; i++)
        dp[i][0] = 1;
    
    for (int i = 1; i < n; i++)
        for (int j = 97; j <= 122; j++)
        {
            dp[j][i] = 0;
            for (int c = 97; c <= 122; c++)
                if (!allowed[c][j])
                    dp[j][i] += dp[c][i-1];
        }
    
    long long total_dp = 0;
    for (int i = 97; i <= 122; i++)
        total_dp = (total_dp + dp[i][n-1]) % MOD;
    
    out << total_dp;            
    
    return 0;
}