Cod sursa(job #2114677)

Utilizator razvancostacheCostache Razvan razvancostache Data 25 ianuarie 2018 19:00:53
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream f("nrcuv.in");
ofstream g("nrcuv.out");

const int N=1001;
const int MOD=104659;

int dp[N][N];
bool b[N][N];
int main()
{

    int n,m,S;
    S=0;
    char x,y;
    f>>n>>m;
    for(int i=0; i<m; i++)
    {
        f>>x>>y;
        b[x-'a'][y-'a']=b[y-'a'][x-'a']=true;
    }
    for(int j=0; j<26; j++)
    {
        dp[1][j]=1;
    }
    for(int i=2; i<=n; i++)
    {
        for(int j=0; j<26; j++)
        {
            for(int k=0; k<26; k++)
            {
                if(!b[k][j])
                {
                    dp[i][j]+=dp[i-1][k];
                    dp[i][j]%=MOD;
                }
            }
        }
    }
    /*
    for(int i=1;i<=n;i++)
    {
       for(int j=0;j<26;j++)
       {
         g<<dp[i][j]<<"\t";
         }
         g<<"\n";
       }
    */
    for(int j=0;j<26;j++)
    {
      S+=dp[n][j];
      S%=MOD;
    }
    g<<S;

    return 0;
}