Cod sursa(job #2106898)

Utilizator dragostanTantaru Dragos Constantin dragostan Data 16 ianuarie 2018 14:53:08
Problema Lista lui Andrei Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>

using namespace std;
ifstream cin("nrcuv.in");
ofstream cout("nrcuv.out");
const int DIM = 1001, MOD = 104659;
int pr[26][26], kt[26], d[DIM];
int main()
{
    int n, m;
    cin >> n >> m;
    for(int i = 1; i <= m; ++i)
    {
        char a, b;
        cin >> a >> b;
        if(!pr[(int)(a - 'a')][(int)(b - 'a')] && !pr[(int)(b - 'a')][(int)(a - 'a')])
        {
            pr[(int)(a - 'a')][(int)(b - 'a')] = pr[(int)(b - 'a')][(int)(a - 'a')] = 1;
            kt[(int)(a - 'a')]++;
            if(a != b)
            kt[(int)(b - 'a')]++;
        }
    }

    d[1] = 26;
    for(int i = 2; i <= n; ++i)
    {
        for(int j = 0; j < 26; ++j)
        {
            d[i] += (26 - kt[j]) % MOD;
            d[i] %= MOD;
        }
    }
    cout << d[n];
    return 0;
}