Cod sursa(job #1853074)

Utilizator RaduGiucleaGiuclea Radu RaduGiuclea Data 21 ianuarie 2017 13:46:08
Problema Lista lui Andrei Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <cstdio>
using namespace std;
long long fv[30][30],fin[30],ofin[30];
int main()
{
    freopen("nrcuv.in","r",stdin);
    freopen("nrcuv.out","w",stdout);
    long long n,m,i,j,k,cuv=26,mod=104659;
    char x,y;
    scanf("%lld%lld\n",&n,&m);
    for(i=1;i<=m;i++)
    {
        scanf("%c %c\n",&x,&y);
        fv[x-'a'+1][y-'a'+1]=1;
        fv[y-'a'+1][x-'a'+1]=1;
    }
    for(i=1;i<=26;i++)
        fin[i]=1,ofin[i]=1;
    for(k=2;k<=n;k++)
    {
        for(i=1;i<=26;i++)
            {
                fin[i]=cuv;
                for(j=1;j<=26;j++)
                    if(fv[i][j])
                        fin[i]-=ofin[j];
            }
        cuv=0;
        for(i=1;i<=26;i++)
            cuv+=fin[i],cuv%=mod,ofin[i]=fin[i];
    }
    printf("%lld",cuv);
    return 0;
}