Cod sursa(job #2087566)

Utilizator dumitrescu_andreiDumitrescu Andrei dumitrescu_andrei Data 13 decembrie 2017 20:35:48
Problema Lista lui Andrei Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("nrcuv.in");
ofstream g("nrcuv.out");

int m,n,a[30];
const int MOD=104659;
long long b[30][1001];
bool c[30][30];

int main()
{
    f>>n>>m;
    for(int i=1;i<=m;++i)
    {
        char aa,b;
        f>>aa>>b;
        if(!c[aa-'a'+1][b-'a'+1])
        {
            c[aa-'a'+1][b-'a'+1]=c[b-'a'+1][aa-'a'+1]=1;
            if(b!=aa)
                {a[aa-'a'+1]++;
                a[b-'a'+1]++;
                }
            else
                a[aa-'a'+1]++;
        }
    }

    for(int i=1;i<=26;++i)
        b[i][1]=1;

    for(int i=2;i<=n;++i)
        for(int j=1;j<=26;++j)
            b[j][i]=(b[j][i-1]*(26-a[j]))%MOD;

    long long s=0;
    for(int i=1;i<=26;++i)
        s=(s+b[i][n])%MOD;
    g<<s;
    return 0;


}