Cod sursa(job #3347950)

Utilizator Rizi_SanNen Ioana Madlena Rizi_San Data 18 martie 2026 23:27:35
Problema Lista lui Andrei Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
#include <vector>

using namespace std;

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

const int MOD = 104659;
const int NL = 26;
const int NMAX = 1000;

int n, m, cnt;

bool l[NL][NL];
int dp[NMAX+2][NL];

int main()
{
    in>>n>>m;
    for (int i=1; i<=m; i++)
    {
        char l1, l2;
        in>>l1>>l2;
        l[l1 -  'a'][l2 - 'a'] = 1;
        l[l2 - 'a'][l1 - 'a'] = 1;
    }

    for (int i=0; i<NL; i++)
    {
        dp[1][i] = 1;
    }

    for (int i=2; i<=n; i++)
    {
        for (int j=0; j< NL; j++)
        {
            for (int k=0; k<NL; k++)
            {
                if (l[j][k]==0)
                {
                    dp[i][j] = (dp[i][j] + dp[i-1][k]) % MOD;
                }
            }
        }
    }

    for (int i=0; i< NL; i++)
    {
       cnt = (cnt + dp[n][i]) % MOD;
    }
    out<<cnt;
    return 0;
}