Cod sursa(job #2557550)

Utilizator MariusblockMoga Marius-Ioan Mariusblock Data 25 februarie 2020 21:06:19
Problema Lista lui Andrei Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>
#define MOD 104659
#define ull unsigned long long

using namespace std;

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

int n,m;
int v[30][30];
int DP[1005][30];

int main()
{
    int i,j,k,S =0;
    char a,b;
    fin>>n>>m;
    for(i = 1; i <= m; i++){
        fin>>a>>b;
        v[a-'a'][b-'a'] = 1;
        v[b-'a'][a-'a'] = 1;
    }
    for(i = 0; i <= 28; i++){
        DP[1][i] = 1;
    }
    for(i = 2; i <= n; i++){
        for(j = 0; j <= 'z'-'a'; j++){
            for(k = 0; k <= 'z'-'a'; k++){
                DP[i][j] += (DP[i-1][k]*(!v[j][k]))%MOD;
            }
            DP[i][j] = DP[i][j]%MOD;
        }
    }
    for(i = 0; i <= 'z'-'a'; i++){
        S += DP[n][i]%MOD;
    }
    S = S%MOD;
    fout<<S<<'\n';
    return 0;
}