Cod sursa(job #2189211)

Utilizator CozehNita Horia Teodor Cozeh Data 27 martie 2018 20:19:07
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
#include <algorithm>
#define mp make_pair
using namespace std;

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

int cuvinte['z'+1]['z'+1];
int d[1050]['z'+10];

int main(){

    int n,m,i;
    fin>>n>>m;
    char a,b;
    for(i = 1; i <= m; i++){
        fin>>a>>b;
        cuvinte[a][b] = 1;
        cuvinte[b][a] = 1;
    }
    for(i = 'a'; i <= 'z'; i++){
        d[1][i] = 1;
    }
    int j,k;
    for(i = 2; i <= n; i++){
        for(j = 'a'; j <= 'z'; j++){
            for(k = 'a'; k <= 'z'; k++){
                if(cuvinte[j][k] != 1){
                    d[i][j] += d[i-1][k];
                    d[i][j] %= 104659;
                }
            }
        }
    }
    long long int sum = 0;
    for(i = 'a'; i <= 'z'; i++){
        sum += d[n][i];
        sum %= 104659;
    }
    fout<<sum;
}