Cod sursa(job #2567946)

Utilizator marius004scarlat marius marius004 Data 3 martie 2020 19:48:57
Problema Lista lui Andrei Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>

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

const int MOD = 104659;
const int NMAX = 1005;

bool ok[30][30];
int n,m,d[NMAX][30],sol;
char a,b;

int main(){
    
    f >> n >> m;
    
    for(int i = 1;i <= m;++i){
        
        f >> a >> b;
        
        ok[a - 'a'][b - 'a'] = ok[b - 'a'][a - 'a'] = 1;
    }
    
    for(char c = 'a';c <= 'z';++c)
        d[1][c - 'a'] = 1;
    
    for(int i = 2;i <= n;++i)
        for(char j = 'a';j <= 'z';++j)
            for(char ch = 'a';ch <= 'z';++ch)
                if(!ok[j - 'a'][ch - 'a'])
                    d[i][j - 'a'] = (d[i][j - 'a'] + d[i - 1][ch - 'a']) % MOD;
    
    for(char c = 'a';c <= 'z';++c)
        sol = (sol + d[n][c - 'a']) % MOD;
    
    g << sol;
    
    return 0;
}