Cod sursa(job #2122397)

Utilizator VarticeanNicolae Varticean Varticean Data 5 februarie 2018 00:08:37
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <bits/stdc++.h>
using namespace std;

int dp[1005][27],n,m;
bool valid[30][30];
int main()
{
     ifstream in("nrcuv.in");
     ofstream out("nrcuv.out");

     in >> n >> m ;
     char a,b;
     for(int i=1; i<=m; i++)
     {
         in >> a >> b;
         valid[a - 'a' +1][b-'a'+1] = 1;
         valid[b - 'a' +1][a-'a'+1] = 1;
     }

     for(int i=1; i<=26; i++)  dp[1][i] = 1;

     for(int i=2; i<=n; i++)
          for(int k=1; k<=26; k++ )
             for(int j=1; j<=26; j++)
          if( !valid[k][j] ) dp[i][k] = ( dp[i][k] + dp[i-1][j] ) % 104659;

    int ans = 0;
    for(int i=1; i<=26; i++)
     ans = ( ans + dp[n][i] ) %104659;
     out << ans;
    return 0;
}