Cod sursa(job #3368949)

Utilizator genius112Prodan Alexandra genius112 Data 16 octombrie 2026 17:33:58
Problema Lista lui Andrei Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <iostream>
#include <fstream>
#include <cmath>
#include <algorithm>
#include <vector>
#include <map>
#include <unordered_map>
#include <set>
#include <queue>
#include <iomanip>
#include <deque>
#include <climits>
#include <bitset>

using namespace std;

long long i, j, x, dp[1001][31], n, m, fv[31][31], sum;
char a, b;

int main()
{
    ifstream cin ("nrcuv.in");
    ofstream cout ("nrcuv.out");

    cin >> n >> m;

    while ( m > 0 ) {
        cin >> a >> b;
        fv[a-'a'][b-'b'] = 1;
        fv[b-'b'][a-'a'] = 1;
        m--;
    }
    for ( i = 'a'-'a'; i <= 'z'-'a'; i++ ) {
        dp[1][i] = 1;
    }
    for ( i = 2; i <= n; i++ ) {
        for ( j = 'a'-'a'; j <= 'z'-'a'; j++ ) {
            for ( x = 'a'-'a'; x <= 'z'-'a'; x++ ) {
                if ( fv[x][j] == 0 ) {
                    dp[i][j] += dp[i-1][x];
                    dp[i][j] %= 104659;
                }
            }
        }
    }
    for ( i = 'a'-'a'; i <= 'z'-'a'; i++ ) {
        sum += dp[n][i];
        sum %= 104659;
    }

    cout << sum;

    return 0;
}