Составить как можно больше прямоугольников - 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.
Объяснение кода листинга программы
- Программа считывает из стандартного ввода количество прямоугольников n.
- Затем программа считывает из стандартного ввода n целых чисел, которые представляют собой стороны прямоугольников.
- Далее программа сортирует массив a по возрастанию, что позволяет в дальнейшем легко сравнивать соседние элементы.
- Затем программа начинает перебирать массив a с первого элемента и сравнивать его со следующим элементом. Если текущий элемент больше следующего, то они меняются местами. Этот процесс продолжается до тех пор, пока массив не будет отсортирован по возрастанию.
- Затем программа начинает перебирать массив a с первого элемента и проверять, равен ли текущий элемент следующему. Если равен, то программа увеличивает счетчик d и переходит к следующей итерации цикла.
- Цикл продолжается до тех пор, пока не будет достигнут последний элемент массива.
- В конце программы выводится значение переменной d, которое представляет собой количество прямоугольников, которые можно составить из данных сторон.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д