Cod sursa(job #1721173)

Utilizator liviu23Liviu Andrei liviu23 Data 24 iunie 2016 18:39:25
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#define MOD 104659
using namespace std;

bool badMatch[30][30];
int n,m,dp[1005][30];

int main()
{
    ifstream fin("nrcuv.in");
    ofstream fout("nrcuv.out");
    fin>>n>>m;
    char a,b;
    for(int i=0;i<m;i++) {
        fin>>a>>b;
        badMatch[a-'a'][b-'a']=true;
        badMatch[b-'a'][a-'a']=true;
    }
    for(int i=0;i<26;i++)
        dp[1][i]=1;
    for(int index=2;index<=n;index++) {
        for(int i=0;i<26;i++)
        for(int j=0;j<26;j++)
            if(!badMatch[i][j])
                dp[index][i]=(dp[index][i]+dp[index-1][j])%MOD;
    }
    int sum=0;
    for(int i=0;i<26;i++)
        sum=(sum+dp[n][i])%MOD;
    fout<<sum;
    return 0;
}