Cod sursa(job #2410186)

Utilizator radumihaisirbuSirbu Radu-Mihai radumihaisirbu Data 19 aprilie 2019 19:55:27
Problema Lista lui Andrei Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <bits/stdc++.h>

using namespace std;

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

const int lit = 27, nmax = 1e3 + 5, mod = 104659;

bitset <lit> a[lit];

char c1, c2;

int n, m, dp[nmax][lit], sol;

int main()
{
    fin >> n >> m;
    while(m--)
    {
        fin >> c1 >> c2;
        a[c1-97][c2-97] = a[c2-97][c1-97] = 1;
    }
    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 (!a[j][k])
                    {
                        dp[i][j] = (dp[i][j] + dp[i-1][k]) % mod;
                    }
                if (i == n)
                {
                    sol += dp[i][j] % mod;
                }
            }
    fout << sol;
    return 0;
}