Cod sursa(job #1680078)

Utilizator demetriad-dagpagDavid Demetriad demetriad-dagpag Data 8 aprilie 2016 15:03:04
Problema Lista lui Andrei Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <stdio.h>
#include <stdlib.h>
#define mod 104659
int lit[27][27],mat[1001][27];
int main()
{
    int n,m,i,j,k,sum;
    char a,b;
    freopen("nrcuv.in","r",stdin);
    freopen("nrcuv.out","w",stdout);
    scanf("%d%d",&n,&m);
    getchar();
    for(i=1; i<=m; i++)
    {
        a=getchar();
        getchar();
        b=getchar();
        getchar();
        lit[a-'a'+1][b-'a'+1]=lit[b-'a'+1][a-'a'+1]=1;
    }
    for(i=1; i<=26; i++)
        mat[1][i]=1;
    for(i=2; i<=n; i++)
        for(j=1; j<=26; j++)
            for(k=1; k<=26; k++)
                if(lit[j][k]==0)
                    mat[i][j]=(mat[i][j]+mat[i-1][k])%mod;
    sum=0;
    for(i=1; i<=26; i++)
        sum+=mat[n][i];
    printf("%d\n",sum%mod);

    return 0;
}