Cod sursa(job #1513874)

Utilizator Matei_IgnutaMatei Ignuta Matei_Ignuta Data 30 octombrie 2015 09:38:34
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>

using namespace std;

const int MOD = 104659;

bool b[27][27];
int d[1001][27];

int main(){
    freopen ("nrcuv.in", "r", stdin);
    freopen ("nrcuv.out", "w", stdout);

    int m,n;
    scanf ("%d %d\n", &n, &m);

    for(int i=1; i<=m; i++){
        char x,y;
        scanf("%c %c\n", &x, &y);
        b[x-'a'][y-'a']=1;
        b[y-'a'][x-'a']=1;
        }

    for(int i=0;i<26;i++)
        d[1][i]=1;

    for(int i=1;i<=n;i++)
        for(int j=0;j<26;j++)
        {
            for(int k=0;k<26;k++)
                if(b[j][k]==0 && b[k][j]==0)
                    d[i][j]=(d[i][j]+d[i-1][k]) % MOD;
        }

    int s=0;
    for(int i=0;i<26;i++)
        s=(d[n][i]+s) % MOD;
    printf("%d", s);
    return 0;
}