Pagini recente » Cod sursa (job #754158) | Cod sursa (job #1739927) | Cod sursa (job #172718) | Cod sursa (job #1952643) | Cod sursa (job #170247)
Cod sursa(job #170247)
#include <iostream>
#include <fstream>
using namespace std;
int N, M;
bool no[26][26];
int A[2][26];
int main(int argc, char *argv[]) {
FILE *fi = fopen("nrcuv.in", "r");
fscanf(fi, "%d %d\n", &N, &M);
char a, b;
for (int i(0); i < M; ++i) {
fscanf(fi, "%c %c\n", &a, &b);
no[a - 'a'][b - 'a'] = no[b - 'a'][a - 'a'] = true;
}
fclose(fi);
for (int i(0); i < 26; ++i)
A[0][i] = 1;
for (int i(1); i < N; ++i)
for (int j(0); j < 26; ++j) {
A[i % 2][j] = 0;
for (int k(0); k < 26; ++k)
if (!no[j][k])
A[i % 2][j] += A[(i + 1) % 2][k];
}
int tot(0);
for (int i(0); i < 26; ++i)
tot += A[(N + 1) % 2][i];
ofstream fout("nrcuv.out");
fout << tot << endl;
fout.close();
return 0;
}