Cod sursa(job #942378)

Utilizator nicnic28nichita trita nicnic28 Data 22 aprilie 2013 10:20:08
Problema Lista lui Andrei Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
using namespace std;
fstream in("nrcuv.in",ios::in),out("nrcuv.out",ios::out);

const int MOD=104659;

int m,n,d[1002][26];
bool comp[26][26];

int sum(int i,int j){
    int s=0;
    for(int k=0 ; k<26 ; k++){
        if(!comp[k][j]) s=(s+d[i-1][k])%MOD;
    }
    return s;
}

int main()
{
    in>>n>>m>>ws;
    for(int i=1 ; i<=m ; i++){
        char t,s;
        in>>ws>>t>>ws>>s>>ws;
        comp[(int)t-'a'][(int)s-'a']=true;
    }
    /*
    for(int i=0 ; i<26 ; i++){
        for(int j=0 ; j<26 ; j++){
        out<<comp[i][j]<<'\t';
        }
        out<<'\n';
    }
    */
    for(int i=0 ; i<26 ; i++){
        d[1][i]=1;
    }
    for(int i=2 ; i<=n ; i++){
        for(int j=0 ; j<26 ; j++){
            d[i][j]=sum(i,j);
        }
    }
    int s=0;
    for(int i=0 ; i<26 ; i++){
        s+=d[n][i];
    }
    out<<s;
    return 0;
}