Cod sursa(job #2849345)

Utilizator MihaiCostacheCostache Mihai MihaiCostache Data 14 februarie 2022 22:15:59
Problema Lista lui Andrei Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <fstream>

using namespace std;
ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");
int n, m, a[1001][1001], suma, total;
int dp[1001][27];
char x, y;
int main()
{
    fin>>n>>m;
    for(int i=1; i<=m; i++)
    {
        fin>>x>>y;
        if(a[x-'a'+1][y-'a'+1]==0)
        {
            a[x-'a'+1][y-'a'+1]=1;
        }
    }
    ///dp[i]=nr de cuvinte de i litere care se
    ///pot forma cu litera j fiind ultima
    for(int i=1; i<=26; i++)
    {
        dp[1][i]=1;
    }
    for(int i=2; i<=n; i++)
    {
        ///dp[i] lungimea sirului
        suma=0;
        for(int j=1; j<=26; j++)
        {
            ///litera in care sa se termine sirul de lungime i
            int total=0;
            for(int t=1; t<=26; t++)
            {
                if(a[j][t]==0)
                {
                    dp[i][j]=(dp[i][j]+d[i-1][t])%104659;
                }
            }
        }
    }
    int sol=0;
    for(int i=1; i<=26; i++)
    {
        sol=(sol+dp[n][i])%104659;
    }
    fout<<sol;
    return 0;
}