Cod sursa(job #1853099)

Utilizator RaduGiucleaGiuclea Radu RaduGiuclea Data 21 ianuarie 2017 13:55:22
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <cstdio>
using namespace std;
int fv[30][30],fin[30],ofin[30];
int main()
{
    freopen("nrcuv.in","r",stdin);
    freopen("nrcuv.out","w",stdout);
    int n,m,i,j,k,cuv=26,mod=104659;
    char x,y;
    scanf("%d%d\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];
                    if(fin[i]<0)
                        fin[i]+=mod;
                }
        }
        cuv=0;
        for(i=1; i<=26; i++)
            cuv+=fin[i],cuv=cuv%mod,ofin[i]=fin[i];
    }
    printf("%d",cuv);
    return 0;
}