Cod sursa(job #1803270)

Utilizator Firealex2Rotileanu Alexandru Firealex2 Data 11 noiembrie 2016 10:34:29
Problema Lista lui Andrei Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream fi("nrcuv.in");
ofstream fo("nrcuv.out");

#define MOD 104659

const int nmax = 1000;

bool litere[27][27];
int m[nmax+1][27];
int n,k;


void init();

int main()
{
    init();
    for(int i=2;i<=n;i++)
    {
        for(int j=1;j<=26;j++)
        {
            for(int t=1;t<=26;t++)
            {
                if(litere[j][t])
                    m[i][j]=(m[i][j] + m[i-1][t])%MOD;
            }
        }
    }
    int s=0;
    for(int i=1;i<=26;i++)
        s+=m[n][i];
    int p=1;
    for(int i=1;i<=n;i++)
        p=(p*26)%MOD;
    fo<<p-s;


    return 0;
}

void init()
{
    fi>>n>>k;
    for(int i=1;i<=k;i++)
    {
        char a,b;
        fi>>a>>b;
        litere[a-'a'+1][b-'a'+1] = true;
        litere[b-'a'+1][a-'a'+1] = true;
    }
    for(int i=1;i<=26;i++)
        m[1][i]=1;
}