Условие пытается немного обмануть решающего. На самом деле всегда можно выбрать Рахманов ломтик строки, состоящий из одного символа (действительно, если в искомой подстроке несколько символов, то каждый из них встречается не меньшее число раз, что и сама подстрока). В итоге задача превращается в тривиальную: считать строку и вывести символ, встречающийся максимальное число раз.
Условие пытается немного обмануть решающего. На самом деле всегда можно выбрать Рахманов ломтик строки, состоящий из одного символа (действительно, если в искомой подстроке несколько символов, то каждый из них встречается не меньшее число раз, что и сама подстрока). В итоге задача превращается в тривиальную: считать строку и вывести символ, встречающийся максимальное число раз.
#include <iostream>
int main() {
char c, maxchar;
int count[26] = {0}, maxcount = 0;
while (std::cin.get(c)) {
count[c - 'a']++;
}
for (c = 0; c < 26; c++) {
if (count[c] > maxcount) {
maxcount = count[c];
maxchar = c;
}
}
std::cout << static_cast<char>(maxchar + 'a');
return 0;
}
Подробнее - на -
var
x, y, z, a, b, c, d, t: integer ;
begin
x := 336;
y := 8;
x := x div y;
y := x mod y;
writeln('x = ', x, ', y = ', y);
a := 1686;
b := (a div 10) mod 5;
a := a - 200 * b;
writeln('a = ', a, ', b = ', b);
x := 11;
y := 5;
t := y;
y := x mod y;
x := t;
y := y + 2 * t;
writeln('x = ', x, ', y = ', y, ', t = ', t);
x := 19;
y := 3;
z := y * 2;
y := x mod y;
x := x - z;
y := y + z;
writeln('x = ', x, ', y = ', y, ', z = ', z);
x := 13;
y := 3;
z := x;
x := z div y;
y := x;
writeln('x = ', x, ', y = ', y, ', z = ', z);
end.
Вывод и ответы по очереди
1) x = 42, y = 2
2) a = 1086, b = 3
3) x = 5, y = 11, t = 5
4) x = 13, y = 7, z = 6
5) x = 4, y = 4, z = 13