Cod sursa(job #1635572)

Utilizator antanaAntonia Boca antana Data 6 martie 2016 18:58:26
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <cstdio>
#define MAX 1000
#define LIT 26
#define MOD 104659
using namespace std;
char lit[LIT+1][LIT+1];
int d[LIT+1][MAX+1];
int main()
{
    freopen("nrcuv.in", "r", stdin);
    freopen("nrcuv.out", "w", stdout);
    int n, m, i, k, j, s=0;
    char l1, l2;
    scanf("%d%d\n", &n, &m);
    for(i=1;i<=m;i++)
    {
        scanf("%c %c\n", &l1, &l2);
        lit[l1-'a'+1][l2-'a'+1]=1;
        lit[l2-'a'+1][l1-'a'+1]=1;
    }
    for(i=1;i<=LIT;i++)
        d[i][1]=1;
    for(k=2;k<=n;k++)
        for(i=1;i<=LIT;i++)
            for(j=1;j<=LIT;j++)
                if(lit[i][j]==0)
                    d[i][k]=(d[i][k]+d[j][k-1])%MOD;
    for(i=1;i<=LIT;i++)
        s=(s+d[i][n])%MOD;
    printf("%d", s);
    return 0;
}