Cod sursa(job #1721170)

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

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

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;
    }
    int substract=0;
    for(int i=0;i<26;i++)
    for(int j=0;j<26;j++) {
        if(badMatch[i][j])
            substract++;
    }
    dp[1]=26;
    dp[2]=26*26-substract;
    for(int i=3;i<=n;i++) {
        dp[i]=(dp[i-1]*26)%MOD;
        dp[i]-=(dp[i-2]*substract)%MOD;
    }
    fout<<dp[n];
    return 0;
}