Cod sursa(job #2670186)

Utilizator Vaida_Radu_AndreiVaida Radu Andrei Vaida_Radu_Andrei Data 9 noiembrie 2020 12:37:31
Problema Lista lui Andrei Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <cstdio>
#define mod 104659
#define letNr 26

using namespace std;

int l,let[letNr][letNr];

void form() {
    int i,j;
    for(i=0;i<letNr;++i) {
        for(j=0;j<letNr;++j) {
            let[i][j]=1;
        }
    }
}

void read() {
    int iq,q;
    char x1,x2;
    scanf("%d",&l);
    scanf("%d\n",&q);
    for(iq=0;iq<q;++iq) {
        scanf("%c %c\n",&x1,&x2);
        x1-='a';
        x2-='a';
        let[x1][x2]=0;
        let[x2][x1]=0;
    }
}

void solve() {
    int ex[letNr],v[letNr],sol,i,j,u;
    for(j=0;j<letNr;++j) {
        v[j]=1;
    }
    for(i=1;i<l;++i) {
        for(j=0;j<letNr;++j) {
            ex[j]=v[j];
        }
        for(j=0;j<letNr;++j) {
            for(v[j]=0,u=0;u<letNr;++u) {
                v[j]+=let[j][u]*ex[u];
            }
            v[j]%=mod;
        }
    }
    for(sol=0,j=0;j<letNr;++j) {
        sol+=v[j];
        sol%=mod;
    }
    printf("%d",sol);
}

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