2xui2
20.12.2020 02:49

Бинарные строки ограничение по времени на тест: 3 секунды ограничение по панти на тест: 256 мегабайт оро стандартный ввод вывод стандартный вывод Строка называется бинарной, если она состоит только из символов 0 и 1. Строка v называется подстрокой строки w , если она имеет ненулевую длину, и её можно прочитать, начиная снекоторой позиции строке w . Например, у строки «010» существует шесть подстрок «0», «1», «0», «01», «10», «010». Две строки считаются различными, если они начинаются разных позициях, либо меют разную длину. Другими словами: каждая подстрока учитывается столько раз, сколько она встречается в исходной строке. Дана бинарная строка s. Ваша задача-найти количество се подстрок, которых ровно единиц. Входные данные Первая строка содержит число k(0<=k<=10^6)-необходимое количество единиц в подстроках. Вторая строка содержит непустую бинарную строку s. Длина строка не превосходит 10 Выходные данные Выведите количество подстрок, содержащих ровно K единиц.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Кувшин13
17.09.2022 06:15

var

  N: 2..100;

  a: array [1..100] of -1000..1000;

  max1, max2, MaxPr, i, j: integer;  {MaxPr - максимальное произведение, max1 и max2 - искомые числа}

function RangeOverfilling(Number: integer; Index: integer): integer; {Функция, возвращающая число в диапазон}
begin
  if Number in [1..Index] then result := Number;
  if Number > Index then result := Number mod Index;
  if Number < 1 then result := Index + Number mod Index;
end;

 

begin

  MaxPr:= -maxint; {Присваиваем максимальному проиведению начальное значение, равное максимальному числу типа integer, взятому со знаком -}

  writeln('Введите N');

  readln(N);

  for i:= 1 to N do

  begin

    writeln('Введите целое число, по модулю не превышающее 1000');

    readln(a[i]);

  end;

  for i:= 1 to N - 1 do

  for j:= 1 to RangeOverfilling(N - i, N) do

    if a[i] * a[i + j] > MaxPr then

    begin

      MaxPr:= a[i] * a[i + j];

      max1:= a[i];

      max2:= a[i + j];

    end;

  writeln('Пара чисел, дающих максимальное произведение: ', max1,' и ', max2);

end.

  

  

0,0(0 оценок)
Ответ:
roman2223q
20.01.2020 00:16

var 

  a, b, c: real;

 

begin

  writeln('Введите 3 любых числа');

  readln(a, b, c);

  if (a < b) and (a < c) then writeln(a, ' - наименьшее число');

  if (b < a) and (b < c) then writeln(b, ' - наименьшее число');

  if (c < a) and (c < b) then writeln(c, ' - наименьшее число');

  if (a > b) and (a > c) then writeln(a, ' - наибольшее число');

  if (b > a) and (b > c) then writeln(b, ' - наибольшее число');

  if (c > a) and (c > b) then writeln(c, ' - наибольшее число');

  readln; //Убрать если среда разработки не Turbo Pascal

end.

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота