Cod sursa(job #2926342)

Utilizator ShadowZoidPorojan Victor-Andrei ShadowZoid Data 17 octombrie 2022 18:22:44
Problema Lista lui Andrei Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
#include <cmath>
#include <algorithm>
#include <cstring>
using namespace std;
ifstream cin("nrcuv.in");
ofstream cout("nrcuv.out");
int n,b,m,dp[50][50],suma,mod=104659;
bool a[50][50];
char x,y;
int main()
{
    cin>>n>>m;
    for(int i=1; i<=m; i++)
    {
        cin>>x>>y;
        if(!a[x-'a'][y-96])
            a[x-96][y-96] = 1;
    }
    for(int j=1; j<=26; j++)
        dp[1][j] = 1;
    for(int i=2; i<=n; i++)
    {
        suma = 0;
        for(int j=1; j<=26; j++)
        {
            int total = 0;
            for(int j2=1; j2<=26; j2++)
            {
                if(!a[j2][j])
                {
                    total += dp[i-1][j2];
                    if(total > mod)
                        total = total % mod;
                }
            }
            dp[i][j] = total;
        }
    }
    int solutie = 0;
    for(int i = 1; i <= 26; ++i)
    {
        solutie = (solutie + dp[n][i]) % mod;
    }
    cout<<solutie;
    return 0;

}