Pagini recente » Cod sursa (job #2057345) | Cod sursa (job #2286974) | Cod sursa (job #753428) | Istoria paginii runda/4xaja | Cod sursa (job #2851664)
#include <fstream>
#include <vector>
#include <set>
#include <bitset>
using namespace std;
ifstream cin("nrcuv.in");
ofstream cout("nrcuv.out");
const int NMAX = 1e3;
const int alfa = 31;
const int MOD = 104659;
int cuv[NMAX + 1][alfa], n, m;
bitset <alfa> v[alfa];
int suma(int i, int litera){
int s = 0;
for(int j = 0; j < 26; j++)
if(!v[litera][j])
s = (s % MOD + cuv[i - 1][j] % MOD) % MOD;
return s;
}
int main(){
cin >> n >> m;
for(int i = 0; i < 26; i++)
cuv[1][i] = 1;
char a, b;
for(int i = 0; i < m; i++){
cin >> a >> b;
v[a - 'a'][b - 'a'] = 1;
v[b - 'a'][a - 'a'] = 1;
}
for(int i = 2; i <= n; i++)
for(int j = 0; j < 26; j++)
cuv[i][j] = suma(i, j);
int sum = 0;
for(int j = 0; j <= 26; j++)
sum = (sum % MOD + cuv[n][j] % MOD) % MOD;
cout << sum;
}