Pagini recente » Profil ZeKalanga | Istoria paginii runda/simulare_de_oni_1 | Cod sursa (job #1570424) | concurs_info2018 | Cod sursa (job #2596719)
#include <fstream>
using namespace std;
ifstream f ( "nrcuv.in" );
ofstream g ( "nrcuv.out" );
const int letters = 'z' - 'a' + 1;
const int N = 1001;
int v[letters + 1], d[N][letters + 1];
bool viz[letters + 1][letters + 1];
int main()
{ int n, m, i, j;
char ch1, ch2;
f >> n >> m;
for ( i = 1; i <= letters; i++ )
v[i] = letters;
for ( i = 1; i <= m; i++ ){
f >> ch1 >> ch2;
int a = ch1 - 'a' + 1;
int b = ch2 - 'a' + 1;
if ( viz[a][b] == 0 ){
if ( a == b )
v[a]--;
else{
v[b]--;
v[a]--;
}
viz[a][b] = viz[b][a] = 1;
}
}
d[1][0] = letters;
for ( i = 1; i <= letters; i++ )
d[1][i] = 1;
for ( i = 2; i <= n; i++ )
for ( j = 1; j <= letters; j++ ){
d[i][j] = d[i - 1][j] * v[j];
d[i][0] += d[i][j];
}
g << d[n][0];
return 0;
}