Cod sursa(job #2367735)

Utilizator razvanradulescuRadulescu Razvan razvanradulescu Data 5 martie 2019 12:03:20
Problema Lista lui Andrei Scor 100
Compilator cpp-64 Status done
Runda bv_10 Marime 1.05 kb
#include <iostream>
#include <cstdio>
#include <string.h>
#define MOD 104659
using namespace std;


char x, y;
int a[30][30];
long long fr[30], nr[30];
int n, m;
long long r;

void rez()
{
    scanf("%d %d\n", &n, &m);
    for(int i = 0; i<26; i++)
    {
        nr[i] = 1;
    }
    for(int i = 0; i<m; i++)
    {
        scanf("%c %c\n", &x, &y);
        a[x-'a'][y-'a'] = 1;
        a[y-'a'][x-'a'] = 1;
    }
    for(int i = 1; i<n; i++)
    {
        for(int i = 0; i<26; i++)
        {
            for(int j = 0; j<26; j++)
            {
                if(a[i][j] == 0)
                {
                    fr[i]=(fr[i] + nr[j])%MOD;
                }
            }
        }
        for(int j = 0; j<26; j++)
        {
            nr[j]=fr[j];
        }
        memset(fr, 0, sizeof(fr));
    }
    for(int i = 0; i<26; i++)
    {
        r=(r+nr[i])%MOD;
    }
    printf("%lld", r);
}

int main()
{
    freopen("nrcuv.in", "r", stdin);
    freopen("nrcuv.out", "w", stdout);
    rez();
    return 0;
}