Cod sursa(job #3316159)

Utilizator raultimarTimar Raul raultimar Data 17 octombrie 2025 16:49:47
Problema Lista lui Andrei Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
int per[26][26],i,n,m,j;
int pos[26],sol;
int v[26][10001];
char a,b;
const int mod=104659;
int f(int k, int n){
    if(v[k][n]!=0) return v[k][n];
    if(n==1) return pos[k];
    int sol=0;
    for(int i=0;i<=25;i++){
        if(per[k][i]==1) sol=(sol+f(i,n-1))%mod;
    }
    v[k][n]=sol;
    return v[k][n];
}
int main()
{
    in>>n>>m;
    for(i=0;i<=25;i++){
        for(j=0;j<=25;j++){
            per[i][j]=1;
        }
    }
    for(i=1;i<=m;i++){
        in>>a>>b;
        per[a-'a'][b-'a']=0;
        per[b-'a'][a-'a']=0;
    }
    for(i=0;i<=25;i++){
        for(j=0;j<=25;j++){
            pos[i]=pos[i]+per[i][j];
        }
    }
    for(i=0;i<=25;i++){
        sol=(sol+f(i,n-1))%mod;
    }
    out<<sol;
    return 0;
}