Cod sursa(job #2273579)

Utilizator sandupetrascoPetrasco Sandu sandupetrasco Data 31 octombrie 2018 19:28:34
Problema Lista lui Andrei Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#pragma GCC optimize("O3")
#include <bits/stdc++.h>
#define MOD 104659
using namespace std;
typedef long long ll;
typedef pair< int , int > PII;
 
int n, m, dp[1010][30], rs;
bool a[30][30];
 
int main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
 
	ifstream cin("nrcuv.in");
	ofstream cout("nrcuv.out");

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

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

    for (int i = 1; i <= n; i++){
        for (int j = 0; j < 26; j++){
            for (int c = 0; c < 26; c++){
                dp[i][j] += dp[i - 1][c] * (!a[j][c] && !a[c][j]);
                dp[i][j] %= MOD;
            }
        }
    }

    for (int i = 0; i < 26; i++) rs = (rs + dp[n][i]) % MOD;

    cout << rs;
	return 0;
}