Cod sursa(job #3363967)

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

using namespace std;

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

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

int main(){
    fin >> 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;
        fin >> 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;
    }
    fout << rez;
}