Cod sursa(job #1066242)

Utilizator chiriacandrei25Chiriac Andrei chiriacandrei25 Data 24 decembrie 2013 12:46:56
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#define MOD 104659

using namespace std;

int N,dp[1005][30];
bool a[30][30];

inline void Read()
{
    int i,j,M;
    char c1,c2;
    for(i=0;i<26;++i)
        for(j=0;j<26;++j)
            a[i][j]=true;

    ifstream fin("nrcuv.in");
    fin>>N>>M;
    while(M--)
    {
        fin>>c1>>c2;
        a[c1-'a'][c2-'a']=a[c2-'a'][c1-'a']=false;
    }
    fin.close();
}

inline void Solve()
{
    int sol=0,i,j,c;
    for(i=0;i<26;++i)
        dp[1][i]=1;
    for(i=2;i<=N;++i)
        for(j=0;j<26;++j)
        {
            dp[i][j]=0;
            for(c=0;c<26;++c)
                if(a[j][c])
                    dp[i][j]=(dp[i][j]+dp[i-1][c])%MOD;
        }
    for(j=0;j<26;++j)
        sol=(sol+dp[N][j])%MOD;

    ofstream fout("nrcuv.out");
    fout<<sol<<"\n";
    fout.close();
}

int main()
{
    Read();
    Solve();
}