Cod sursa(job #286265)

Utilizator ZillaMathe Bogdan Zilla Data 23 martie 2009 17:10:26
Problema Lista lui Andrei Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <stdio.h>

#define mod 104659

#define Nmax 1024
#define Lmax 32

int n,m,valid[Lmax][Lmax],b[Nmax][Lmax];

int main()
{
    int i,j,k,rez;
    char x,y;
    freopen("nrcuv.in","r",stdin);
    freopen("nrcuv.out","w",stdout);
    scanf("%d%d",&n,&m);
  
    for(i=1;i<=m;++i)
        {
            scanf("%c",&x);
            scanf("%c",&x);
            scanf("%c",&y);
            scanf("%c",&y);
            valid[x-'a'][y-'a']=-1;
            valid[y-'a'][x-'a']=-1;
        }
    for(i=0;i<26;++i)
        b[1][i]=1;
    for(i=2;i<=n;++i)
        {
            for(j=0;j<26;++j)
                for(k=0;k<26;++k)
                    if(valid[j][k]==0)
                        b[i][j]=(b[i][j]+b[i-1][k])%mod;
        }
    for(i=0;i<26;++i)
        rez=(rez+b[n][i])%mod;
    printf("%d",rez);
    return 0;    
}