Cod sursa(job #2382550)

Utilizator mihnea.anghelMihnea Anghel mihnea.anghel Data 18 martie 2019 14:27:03
Problema Lista lui Andrei Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>

using namespace std;
ifstream f("nrcuv.in");
ofstream g("nrcuv.out");
char x,y;
int sol,i,j,n,m,a[26][26], D[1001][26];
/// D[i][j] se termina cu litera j+1
int main()
{
    f>>n>>m;
    for (i=1;i<=m;i++){
        f>>x>>y;
        a[x-'a'][y-'a']=1;
        a[y-'a'][x-'a']=1;
    }
    for(i=0;i<26;i++) D[1][i]=1;
    for(i=2;i<=n;i++){
        ///calculez numar de siruri de lungime i
        for(j=0;j<26;j++){ ///calculez D[i][j] - cate siruri de i elementr se termina cu a j-a litea
            ///adaug litera j la finalul unui sir de lugime i-1
            D[i][j]=0;
            ///caut sa pun ;itera j dupa fiecare litera acceptabila a unuo sir de lungime i-1
            for(int k=0;k<26;k++)
                if(a[j][k]==0)
                  D[i][j]+=D[i-1][k];
        }
    }
    for(i=0;i<26;i++){
        sol+=D[n][i];
        sol%=104659;
    }
    g<<sol;
    return 0;
}