• Предмет: Информатика
  • Автор: k13vza3days
  • Вопрос задан 3 месяца назад

Информатика на языке программирования паскалт

Инженер Сулбуфий устроился на работу в крупную ІТ-компанию. В первый день работы ему поручили задание подключить патч-

корды к коммутатору в серверном шкафу. Коммутатор имеет очень много портов для подключений, однако расположены они все в одну линию.

Приступив к работе, Сулбуфий заметил на коммутаторе записку:

«Серверы подключены и работают, но после отключения могут не включиться. НЕ ОТКЛЮЧАТЬ! Удачи в подключении!».

Сулбуфий доверился старшему руководителю и не стал трогать уже подключенные патч-корды. Сулбуфий любит, когда провода аккуратно уложены. Сервер дает возможность заменить любой свободный порт на крепеж для фиксации патч-кордов.

Примечание: на место крепежа нельзя установить патч-корд. В наличии у Сулоуфия всего один крепеж, поэтому он хочет

подключить все патч-корды максимально близко к крепежу. Расстоянием между номерами і и і считается значение і — j].

Помогите Сулбуфию разместить патч-корды так, чтобы расстояние между самым удаленным патч-кордом и крепежом было минимальным.

Входные данные

В первой строке входных данных записаны два числа N и К (1 ≤ К < N < 10°) — количество портов для подключений и количество патч-кордов, которые необходимо подключить, соответственно.

Во второй строке записаны N символов, описывающие порты для подключения. Если і-й символ равен «О», то і-й порт свободен, а если «1». то занят (1 ≤ і < N). Гарантируется, что в коммутаторе есть как минимум К + 1 свободных портов, то есть

Сулбуфий точно может подключить и крепеж, и все патч-корды в коммутатор

Выходные данные

Выведите минимально возможное расстояние от самого дальнего патч-корда, который подключил Сулбуфий, до крепежа.

Ответы

Ответ дал: ggig77895
1

Ответ:

program PatchCords;

var

 N, K, i, j, distance, maxDistance: Integer;

 ports: array of Char;

begin

 // Ввод данных

 Write('Введите количество портов и количество патч-кордов: ');

 Readln(N, K);

 

 SetLength(ports, N);

 Write('Введите состояние портов (O - свободен, 1 - занят): ');

 for i := 1 to N do

   Read(ports[i]);

 // Ищем максимальное расстояние между свободными портами

 maxDistance := 0;

 for i := 1 to N - K + 1 do

 begin

   distance := 0;

   for j := i to i + K - 1 do

     if ports[j] = 'O' then

       distance := distance + i - j;

   if distance > maxDistance then

     maxDistance := distance;

 end;

 // Вывод результата

 Writeln('Минимальное расстояние от самого дальнего патч-корда до крепежа: ', maxDistance);

end.

Объяснение:

Программа запрашивает у пользователя количество портов и количество патч-кордов, а затем вводит состояние портов. Она ищет максимальное расстояние между свободными портами, которое может использовать Сулбуфий для подключения крепежа и патч-кордов. Результат выводится на экран.

Вас заинтересует