Cod sursa(job #46051)

Utilizator bogdanhm999Casu-Pop Bogdan bogdanhm999 Data 2 aprilie 2007 11:24:23
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <stdio.h>

    long N,M,i,j,k,p,q,s;
    char c1,c2;
    long l1[27],l2[27];
    bool v[27][27];

int main(){
    freopen("nrcuv.in","r",stdin);
    freopen("nrcuv.out","w",stdout);
    scanf("%d %d\n",&N,&M);
    for (i=1;i<=M;i++){
        scanf("%c %c\n",&c1,&c2);
        v[c1-'a'+1][c2-'a'+1]=1;
        v[c2-'a'+1][c1-'a'+1]=1;
    }
    for (i='a';i<='z';i++){
        l1[i-'a'+1]=1;
    }

    for (i=2;i<=N;i++){
        for (j=1;j<=26;j++)l2[j]=0;
        for (j=1;j<=26;j++){
            for (k=1;k<=26;k++){
                if (!v[j][k])l2[k]+=l1[j];
            }
        }
        for (j=1;j<=26;j++)l1[j]=l2[j]%104659;
    }
    for (i=1;i<=26;i++){
        s+=l1[i];
    }
    printf("%d\n",s%104659);
    return 0;
    
}