Составить как можно больше прямоугольников - 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, которое представляет собой количество прямоугольников, которые можно составить из данных сторон.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д