Возможны следующие варианты расположения кладов:
1 2 3 4
К К - -
К - К -
К - - К
- К К -
- К - К
- - К К
Всего 6 возможных вариантов.
Необходимое количество бит для кодирования = log(2)6 ≈ 2,58 ≈ 3 бита
int main(int argc, char* argv[])
{
char s[256] = {0};
char prevChar = {0};
std::cin >> s;
int len = strlen(s);
prevChar = s[0];
int count = 1;
for (int i = 1; i < len+1; i++)
{
if (s[i] == prevChar) {
count++;
} else {
printf("%d %c\n", count, prevChar);
count = 1;
prevChar = s[i];
}
}
return 0;
}