Условие пытается немного обмануть решающего. На самом деле всегда можно выбрать Рахманов ломтик строки, состоящий из одного символа (действительно, если в искомой подстроке несколько символов, то каждый из них встречается не меньшее число раз, что и сама подстрока). В итоге задача превращается в тривиальную: считать строку и вывести символ, встречающийся максимальное число раз.
#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
N: array [1..15] of 1..15; {Массив, в который записываются номера положительных элементов массива х}
x: array [1..15] of real; //Массив х
i: integer; //Переменная для цикла
Number: integer; //Сколько номеров было записано
begin
Number:= 0; //Обнуляем счетчик номеров
for i:= 1 to 15 do //Вводим с клавиатуры массив х
begin
writeln('Введите ', i, ' элемент массива х');
readln(x[i]);
if x[i] > 0 then {Если введенный элемент массива х положительный, то прибавляем к счетчику добавленных номеров 1 и присваиваем соответствующему элементу массива N номер элемента}
begin
Number:= Number + 1;
N[Number]:= i;
end;
end;
write('Номера положительных элементов массива х: ');
for i:= 1 to Number do write(n[i], ' '); //Выводим записанные номера элементов
writeln; {Переход на новую строку, чтобы при следующем запуске программы информация выводилась с новой строки}
end.