Cod sursa(job #1866955)

Utilizator lauratalaatlaura talaat lauratalaat Data 3 februarie 2017 17:09:30
Problema Lista lui Andrei Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<stdio.h>
#define MOD 104659
int a[27][27];
long long d[27][27];
int main(){
    int sum=0,n,m,i,j,k;
    char l1,l2,ch;
    freopen("nrcuv.in","r",stdin);
    freopen("nrcuv.out","w",stdout);
    scanf("%d%d%c",&n,&m,&ch);
    for(i=1;i<=m;i++){
        scanf("%c%c%c%c",&l1,&ch,&l2,&ch);
        a[l1-96][l2-96]=1;
        a[l2-96][l1-96]=1;
    }
    //d[i][j]= numarul de cuvinte formate din primele i caractere ce se termina in j
    for(i=1;i<=26;i++)
        d[1][i]=1;
    for(i=2;i<=26;i++)
        for(j=1;j<=26;j++)
            for(k=1;k<=26;k++)
                if(a[j][k]==0)
                    d[i][j]=(d[i][j]+d[i-1][k])%MOD;
    sum=0;
    for(i=1;i<=26;i++)
        sum=(sum+d[n][i])%MOD;
    printf("%d\n",sum);
    return 0;
}