Cod sursa(job #926997)

Utilizator timicsIoana Tamas timics Data 25 martie 2013 15:20:44
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<stdio.h>
int N,M,v[26][26],x,y,nr[26][2],s;
char a,b,c,d;
int main()
{
    freopen("nrcuv.in","r",stdin);
    freopen("nrcuv.out","w",stdout);
    scanf("%d%d",&N,&M);

    for(int i=1;i<=M;++i)
    {
        scanf("%c%c%c%c",&a,&b,&c,&d);
        x=b-'a';
        y=d-'a';
        v[x][y]=1;
        v[y][x]=1;
    }


    for(int i=0;i<=25;++i)
        nr[i][0]=1;

    for(int i=2;i<=N;++i)
    {
        for(int j=0;j<=25;++j)
        {
            nr[j][1]=0;
            for(int k=0;k<=25;++k)
                if(v[j][k]==0)
                    nr[j][1]=(nr[j][1]+nr[k][0])%104659;
        }
        for(int j=0;j<=25;++j)
            nr[j][0]=nr[j][1];
    }

    for(int i=0;i<=25;++i)
        s=(s+nr[i][0])%104659;

    printf("%d",s);
    return 0;
}