Составить как можно больше прямоугольников - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Помогите написать программу, препод задал.

Составить как можно больше прямоугольников. У учащихся есть n веточек с длинами a1, a2, ... an. Ломать и склеивать ветки нельзя. То есть, для составления прямоугольника x×y необходимо взять две ветки длиной х и две длиной - y, а для квадрата - четыре ветви одинаковой длины. Не обязательно использовать все ветки, что остались.

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

В первой строке содержится целое число n (1 ≤ n ≤ 100) — количество ветвей. Во второй строке содержится n целых чисел, записанных через пробел, i-е из которых равна длине i-й ветви ai (1 ≤ ai ≤ 100).

Исходные данные.

Выведите одно целое число — максимальное количество прямоугольников. Examples Input 5 2 4 3 2 3 Output 1

Решение задачи: «Составить как можно больше прямоугольников»

textual
Листинг программы
var
i,j,n,k,t,d:integer;
a:array[1..100]of integer;
begin
readln(n);
for i:=1 to n do
read(a[i]);
for i:=1 to n do
for j:=2 to n do
if a[j]<a[j-1]then begin
t:=a[j];
a[j]:=a[j-1];
a[j-1]:=t;
end;
k:=1;
repeat
inc(k);
if a[k]=a[k-1] then
begin
inc(d);
inc(k);
end;
until k>=n;
writeln (d div 2);
end.

Объяснение кода листинга программы

  1. Программа считывает из стандартного ввода количество прямоугольников n.
  2. Затем программа считывает из стандартного ввода n целых чисел, которые представляют собой стороны прямоугольников.
  3. Далее программа сортирует массив a по возрастанию, что позволяет в дальнейшем легко сравнивать соседние элементы.
  4. Затем программа начинает перебирать массив a с первого элемента и сравнивать его со следующим элементом. Если текущий элемент больше следующего, то они меняются местами. Этот процесс продолжается до тех пор, пока массив не будет отсортирован по возрастанию.
  5. Затем программа начинает перебирать массив a с первого элемента и проверять, равен ли текущий элемент следующему. Если равен, то программа увеличивает счетчик d и переходит к следующей итерации цикла.
  6. Цикл продолжается до тех пор, пока не будет достигнут последний элемент массива.
  7. В конце программы выводится значение переменной d, которое представляет собой количество прямоугольников, которые можно составить из данных сторон.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы