В одной строке вывести два числа — высоту наибольшей из башен и их общее количество. - Free Pascal
Формулировка задачи:
Прошу, помогите решить эту задачу, с объяснениями, если можно:
Маленький Вася недавно получил в подарок от старшего брата набор юного строителя. Этот набор состоит из нескольких деревянных брусков, для каждого из которых известна его длина. Бруски можно класть сверху один на другой, если длины брусков совпадают.
Вася хочет соорудить из всех брусков минимальное количество башенок. Помогите Васе расположить бруски оптимальным образом.
Входные данные
В первой строке записано целое число N (1 ≤ N ≤ 1000) — количество брусков, имеющихся в распоряжении у Васи. Во второй строке через пробел записано N целых чисел li — длины брусков. Все длины — натуральные числа, не превосходящие 1000.Выходные данные
В одной строке выведите два числа — высоту наибольшей из башен и их общее количество. Помните, что Вася должен использовать все бруски.Примеры тестов
входные данные
3 1 2 3выходные данные
1 3входные данные
4 6 5 6 7выходные данные
2 3Решение задачи: «В одной строке вывести два числа — высоту наибольшей из башен и их общее количество.»
textual
Листинг программы
const maxn=1000; var a: array [1..maxn] of Integer; i, k, m, n: Integer; begin ReadLn(n); for n:=1 to n do begin Read(i); if a[i]=0 then Inc(k); Inc(a[i]); if m<a[i] then m:=a[i]; end; WriteLn(m,' ',k); end.
Объяснение кода листинга программы
- Объявлены следующие переменные: — maxn - константа, определяющая максимально возможное количество башен (1000 в данном случае). — a - массив, в котором будут храниться значения высоты башен. — i, k, m, n - переменные для выполнения операций в цикле.
- Считывается количество башен (n).
- В цикле выполняются следующие действия: — считывается значение высоты очередной башни (i). — если значение высоты очередной башни равно 0, то увеличивается счетчик k, отвечающий за количество башен. — значение высоты очередной башни увеличивается на 1 и, если это значение больше текущего максимального значения высоты башен (m), то m обновляется.
- Выводятся два значения: — максимальная высота башен (m). — количество башен (k).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д