Cod sursa(job #3374050)

Utilizator gogomanusAlbu Eduard Tudor gogomanus Data 8 noiembrie 2026 16:31:08
Problema Lista lui Andrei Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <bits/stdc++.h>
#define MOD 104659
#define NMAX 10000
#define ENG 26
using namespace std;

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

int n, m;
int perechi[ENG][ENG], nrc[NMAX][ENG];

void citire()
{
    fin >> n >> m;
    for (int a = 0; a < m; a++)
    {
        char i, j; fin >> i >> j;
        int i_c = i - 'a';
        int j_c = j - 'a';
        perechi[i_c][j_c] = 1;
        perechi[j_c][i_c] = 1;
    }
}

int main()
{
    citire();
    for (int k = 0; k < ENG; k++)
    {
        nrc[1][k] = 1;
    }
    for (int i = 2; i <= n; i++)
    {
        for (int j = 0; j < ENG; j++)
        {
            for (int k = 0; k < ENG; k++)
            {
                if (perechi[k][j] != 1)
                {
                    nrc[i][j] += nrc[i - 1][k];
                    if (nrc[i][j] >= MOD) nrc[i][j] -= MOD;
                }
            }
        }
    }
    int rezultat = 0;
    for (int i = 0; i < ENG; i++)
    {
        rezultat += nrc[n][i];
        if (rezultat >= MOD) rezultat -= MOD;
    }
    fout << rezultat;
    return 0;
}