Cod sursa(job #1856195)

Utilizator UrsuDanUrsu Dan UrsuDan Data 24 ianuarie 2017 17:14:36
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <cstdio>
#include <vector>
#define mod 104659
#define abc 'z'-'a'+1

using namespace std;

int m[1010][30];
bool ad[30][30];

int main()
{
    freopen("nrcuv.in","r",stdin);
    freopen("nrcuv.out","w",stdout);
    int n,nr,s=0,i,j,k;
    char c1,c2;
    scanf("%d%d\n",&n,&nr);
    for(i=1; i<=nr; i++)
    {
        scanf("%c %c\n",&c1,&c2);
        ad[c1-'a'+1][c2-'a'+1]=true;
        ad[c2-'a'+1][c1-'a'+1]=true;
    }
    for(i=1; i<=abc; i++)
        m[1][i]=1;
    for(i=1; i<=n-1; i++)
    {
        for(j=1; j<=abc; j++)
        {
            for(k=1; k<=abc; k++)
            {
                if(ad[j][k]==false)
                {
                    m[i+1][k]+=m[i][j];
                    m[i+1][k]%=mod;
                }
            }
        }
    }
    for(i=1; i<=abc; i++)
    {
        s+=m[n][i];
        s%=mod;
    }
    printf("%d",s);
    return 0;
}