Cod sursa(job #3166881)

Utilizator panterasbook29Turcu Stiolica Alexandru panterasbook29 Data 9 noiembrie 2023 18:43:23
Problema Lista lui Andrei Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>

using namespace std;

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

const int mmax = 2001;
int ok[mmax][mmax];
int dp[mmax][mmax];

const int mod = 104659;

int main()
{
    int n,m;
    in>>n>>m;

    for(int i = 1; i <= m; i++)
    {
        char x,y;
        in>>x>>y;
        ok[x - 96][y - 96] = 1;
        ok[y - 96][x - 96] = 1;
    }

    for(int i = 1; i <= 26; i++)
        dp[1][i] = 1;

    for(int i = 2; i <= n; i++)
        for(int j = 1; j <= 26; j++)
            for(int k = 1; k <= 26; k++)
                if(ok[j][k] == 0)
                    dp[i][j] = (dp[i][j] + dp[i - 1][k])%mod;

    int total = 0;
    for(int i = 1; i <= 26; i++)
        total = (total + dp[n][i])%mod;

    out<<total;
    return 0;
}