Cod sursa(job #2658958)

Utilizator GligarEsterabadeyan Hadi Gligar Data 15 octombrie 2020 16:38:36
Problema Lista lui Andrei Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>

using namespace std;

ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");

const int nmax=1000,mmax=2000,mod=104659,sigma=26;

int vm[mmax][2],v[sigma][sigma],d[nmax+1][sigma];

int main(){
    int n,m;
    fin>>n>>m;
    char z;
    for(int i=0;i<m;i++){
        for(int j=0;j<2;j++){
            fin>>z;
            vm[i][j]=z-'a';
        }
    }
    for(int i=0;i<m;i++){
        v[vm[i][0]][vm[i][1]]=1;
        v[vm[i][1]][vm[i][0]]=1;
    }
    for(int j=0;j<sigma;j++){
        d[1][j]=1;
    }
    int s=0;
    for(int i=2;i<=n;i++){
        for(int j=0;j<sigma;j++){
            s=0;
            for(int k=0;k<sigma;k++){
                if(v[j][k]!=1){
                    s=(s+d[i-1][k])%mod;
               }
            }
            d[i][j]=s;
        }
    }
    int sol=0;
    for(int j=0;j<sigma;j++){
        sol=(sol+d[n][j])%mod;
    }
    fout<<sol;
    return 0;
}