Cod sursa(job #944769)

Utilizator thewildnathNathan Wildenberg thewildnath Data 29 aprilie 2013 18:35:51
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<stdio.h>
int v[26][26],s[1001][26];

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