Pagini recente » Cod sursa (job #1173550) | Cod sursa (job #2666554) | Cod sursa (job #2956233) | Cod sursa (job #2512979) | Cod sursa (job #1888026)
#include <iostream>
#include <fstream>
using namespace std;
int N, M;
int U[30][30];
int D[1010][30];
int C;
int main()
{
ifstream i("nrcuv.in");
ofstream o("nrcuv.out");
i >> N >> M;
for(int a = 0; a < M; a++)
{
char z, x;
int k, y;
i >> z >> x;
k = z - 'a';
y = x - 'a';
if(!U[k][y])
{
if(k != y)
{
U[k][y] = 1;
U[y][k] = 1;
C += 2;
}
else
{
U[k][y] = 1;
C += 1;
}
}
}
for(int a = 0; a < 30; a++)
{
D[0][a] = 1;
}
for(int a = 1; a < N; a++)
{
for(int b = 0; b < 26; b++)
{
for(int c = 0; c < 26; c++)
{
if(!U[b][c])
{
D[a][c] += D[a - 1][b];
D[a][c] = D[a][c] % 104659;
}
}
}
}
int S = 0;
for(int a = 0; a < 26; a++)
{
S += D[N - 1][a];
S = S % 104659;
}
o << S % 104659;
return 0;
}