Cod sursa(job #1726609)

Utilizator TibiraducanuTiberiu Raducanu Tibiraducanu Data 8 iulie 2016 14:53:50
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <cstdio>

using namespace std;

const int MOD=104659;
char a,b;
int i,j,k,n,m,sum,s[30],d[30][1005];
bool mat[30][30];

int main()
{
    freopen("nrcuv.in","r",stdin);
    freopen("nrcuv.out","w",stdout);

    scanf("%d%d\n",&n,&m);

    for(i=1;i<=m;i++)
    {
        scanf("%c %c\n",&a,&b);
        mat[a-'a'+1][b-'a'+1]=1;
        mat[b-'a'+1][a-'a'+1]=1;
    }

    for(i=1;i<=26;i++) d[i][1]=1;

    for(i=1;i<n;i++)
        for(j=1;j<=26;j++)
            for(k=1;k<=26;k++)
                if(mat[k][j]==0)
                {
                    d[k][i+1]+=d[j][i];
                    d[k][i+1]%=MOD;
                }

    for(i=1;i<=26;i++)
        sum+=d[i][n], sum%=MOD;

    printf("%d\n",sum);


    return 0;
}