Cod sursa(job #1847714)

Utilizator stefii_predaStefania Preda stefii_preda Data 14 ianuarie 2017 22:17:39
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>

using namespace std;
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
const int MOD = 104659;
int d[1005][27];
bool ok[27][27];
//d[i][j]=nr de cuv de lungime i care se termina in litera j
//a[i][j] = 0 daca (i,j) pereche de litere valida, 1 daca nu

int main()
{
    int n, m, i, j, k;
    in >> n >> m;
    char a, b;
    for(i = 1; i <= m; i++)
    {
        in >> a >> b;
        ok[a-'a'][b- 'a'] = 1;
        ok[b- 'a'][a- 'a'] = 1;
    }
    for(j = 0; j < 26; j++)
        d[1][j] = 1;
    for(i = 2; i <= n; i++)
        for(j = 0; j < 26; j++)
            for(k = 0; k < 26; k++)
                if(ok[k][j]== 0)
                    d[i][j] = (d[i][j] + d[i-1][k]) %MOD;
    int nr = 0;
    for(i = 0; i < 26; i++)
        nr = (nr + d[n][i])%MOD;
    out << nr;
    return 0;
}