Cod sursa(job #3255118)

Utilizator PsyDuck1914Feraru Rares-Serban PsyDuck1914 Data 9 noiembrie 2024 15:06:49
Problema Lista lui Andrei Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NMAX = 1e3;
const int MOD = 104659;

long long dp[NMAX+1][26];
bool e_incomp[26][26];

int main()
{
    int n, m;
    f >> n >> m;
    
    for(int i=1; i<=m; i++){
        
        char l1, l2;
        f >> l1 >> l2;
        
        e_incomp[(int) l1 - 97][(int) l2 - 97] = true;
        e_incomp[(int) l2 - 97][(int) l1 - 97] = true;
        
    }
    
    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(!e_incomp[j][k])
                    dp[i][j] = (dp[i][j] + dp[i-1][k]) % MOD;
            
        }
        
    }
    
    long long rez = 0;
    
    for(int i=0; i<26; i++)
        rez = (rez + dp[n][i]) % MOD;
    
    g << rez;

    return 0;
}