Cod sursa(job #1739401)

Utilizator miki4Dragomir Mihai miki4 Data 9 august 2016 13:45:09
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<fstream>
#define DIM 100010
using namespace std;
int n, m;
char x, y;
int a[27][27], d[27][1006], i, lg, j, k, sol;
//ifstream fin ("scmax.in");
//ofstream fout("scmax.out");

ifstream fin ("nrcuv.in");
ofstream fout("nrcuv.out");
int main(){
    fin>>n>>m;
    for(i=1;i<=m;i++){
        fin>>x>>y;
        a[x-'a'][y-'a']=1;
        a[y-'a'][x-'a']=1;
    }
    //d[i][j]=cate cuv de lungime j se termina cu litera i cu i de la o la 25 si j de la 1 la n
    for(i=0;i<=25;i++)
        d[i][1]=1;
    for(lg=2;lg<=n;lg++)
        for(i=0;i<=25;i++){
        //calculez cate siruri de lungime lg se termina cu litera i
        d[i][lg]=0;
        for(k=0;k<=25;k++)
        if(a[k][i]==0){
            d[i][lg]+=d[k][lg-1];
            d[i][lg]%=104659;
        }
    }
    int MOD=104659;
    for(i=0;i<=25;i++){
        sol+=d[i][n];
        if(sol >= MOD)
            sol -=MOD;
    }
    fout<<sol;
    return 0;
}