Cod sursa(job #3363966)

Utilizator alex.iovita.23@gmail.comIovita Alexandru [email protected] Data 25 august 2026 18:08:53
Problema Lista lui Andrei Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<bits/stdc++.h>

using namespace std;

const int MOD = 104659;
int n , m;
int dp[1005][27];
set<int> lit[27];

int main(){
    cin >> n >> m;
    for(int i = 0 ; i < 26 ; i++){
        for(int j = 0 ; j < 26 ; j++){
            lit[i].insert(j);
        }
    }
    while(m--){
        char a , b;
        cin >> a >> b;
        lit[a - 'a'].erase(b - 'a');
        lit[b - 'a'].erase(a - 'a');
    }
    for(int i = 0 ; i < 26 ; i++) dp[1][i] = 1;
    for(int i = 2 ; i <= n ; i++){
        for(int l = 0 ; l < 26 ; l++){
            for(int last : lit[l]){
                dp[i][last] = (dp[i][last] + dp[i - 1][last]) % MOD;
            }
        }
    }
    int rez = 0;
    for(int i = 0; i < 26 ; i++){
        rez = (rez + dp[n][i]) % MOD;
    }
    cout << rez;
}