Cod sursa(job #2119367)

Utilizator FredyLup Lucia Fredy Data 31 ianuarie 2018 23:52:34
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>

using namespace std;

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

#define limc 26
#define lim 1010
#define mod 104659
int n,m;
bool bad[limc][limc];
int dp[lim][limc];

int main()
{
    char x,y;
    fin>>n>>m;
    for (int i=1; i<=m; i++)
    {
        fin>>x>>y;
        bad[x-'a'][y-'a']=bad[y-'a'][x-'a']=1;
    }
    for (int i=0; i<26; i++)    dp[1][i]=1;

    for (int i=2; i<=n; i++)
        for (int c=0; c<26; c++)
            for (int cc=0; cc<26; cc++)
                if (!bad[c][cc])
                    dp[i][c] = 1LL*(dp[i][c] + dp[i-1][cc]) % mod;

    long long rez=0;
    for (int c=0; c<26; c++)
        rez = 1LL*(rez + dp[n][c]) % mod;
    fout<<rez;

    return 0;
}