Cod sursa(job #852769)

Utilizator dariusdariusMarian Darius dariusdarius Data 11 ianuarie 2013 18:35:06
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<stdio.h>
#define MOD 104659
int d[1005][26];
int ad[26][26];
int main()
{
    freopen("nrcuv.in","r",stdin);
    freopen("nrcuv.out","w",stdout);
    int n,m,i,last,llast;char a,b;
    scanf("%d %d",&n,&m);getchar();
    for(i=1;i<=m;i++)
    {scanf("%c %c",&a,&b);ad[a-'a'][b-'a']=ad[b-'a'][a-'a']=-1;getchar();}
    for(last=0;last<26;last++) d[1][last]=1;
    for(i=2;i<=n;i++)
        for(last=0;last<26;last++)
            for(llast=0;llast<26;llast++)
                if(ad[llast][last]==0)
                    d[i][last]=(d[i][last]+d[i-1][llast])%MOD;
    for(i=1;i<26;i++)
        d[n][0]=(d[n][0]+d[n][i])%MOD;
    printf("%d\n",d[n][0]);
    return 0;
}