Cod sursa(job #2340648)

Utilizator victorv88Veltan Victor victorv88 Data 10 februarie 2019 19:36:02
Problema Lista lui Andrei Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <iostream>
#include <fstream>

#define MOD 104659

using namespace std;

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

int n, m;
int dp[150],auxdp[150];
bool posibil[150][150];

void copiere_aux()
{
    for (int i=(int)'a'; i<=(int)'z'; i++)
    {

        dp[i]=auxdp[i];
        auxdp[i]=0;
    }

}

int main() {
    char l1, l2;
    f >> n >> m;
    for (int litere=0; litere<m; litere++)
    {
        f >> l1 >> l2;
        posibil[l1][l2]=1;
        posibil[l2][l1]=1;
    }
    for (int i=(int)'a'; i<=(int)'z'; i++)
    {
        dp[i]=1;
    }
    for (int i=2; i<=n; i++)
    {
        for (int lit=(int)'a'; lit<=(int)'z'; lit++)
        {
            for (int cautat=(int)'a'; cautat<=(int)'z'; cautat++)
            {
                if (posibil[lit][cautat]==0)
                {
                    auxdp[lit]+=dp[cautat];
                    auxdp[lit]%=MOD;
                }
            }
        }
        copiere_aux();
    }
    int s=0;
    for (int lit=(int)'a'; lit<=(int)'z'; lit++)
    {
        s+=dp[lit];
        s%=MOD;
    }
    g << s;
    return 0;
}