За какое наименьшее время Иван поймет, в какой папке нужный диплом - Pascal ABC
Формулировка задачи:
В этом году Иван заканчивает школу и поступает в вуз. За время своей учебы он часто участвовал в олимпиадах по информатике и у него накопилось много дипломов. Иван раскладывал дипломы по папкам совершенно бессистемно, то есть любой диплом мог оказаться в любой из папок. К счастью, Иван помнит, сколько дипломов лежит в каждой из папок.
Иван хочет принести в приемную комиссию выбранного вуза папку, в которой находится диплом Московской олимпиады по программированию (такой диплом у Ивана ровно один). Для того чтобы понять, что в данной папке нужного диплома нет, Ивану нужно просмотреть все дипломы из этой папки. Просмотр одного диплома занимает у него ровно одну секунду и он может мгновенно переходить к просмотру следующей папки после окончания просмотра предыдущей. Порядок просмотра папок Иван может выбирать.
По заданному количеству дипломов в каждой из папок требуется определить, за какое наименьшее время в худшем случае Иван поймет, в какой папке содержится нужный ему диплом.
Входные данные
В первой строке входного файла записано целое число N (1N100) - количество папок. Во второй строке записаны N целых чисел a1, a2, ..., aN (1ai100) - количество дипломов в каждой из папок.
Выходные данные
Выведите одно число - минимальное количество секунд, необходимое Ивану в худшем случае для определения того, в какой папке содержится диплом.
Примечание
В примере Иван может просмотреть папку 2 за 1 секунду и, не найдя там диплома, понять, что диплом находится в папке 1.
Если же он найдет диплом в папке 2, то на поиск уйдет также 1 секунда.
Решение задачи: «За какое наименьшее время Иван поймет, в какой папке нужный диплом»
textual
Листинг программы
var a:array [1..100] of integer; i,n,kol,max,sec,sum:integer; begin readln(n); max := 0; kol := 0; sum := 0; for i := 1 to n do begin read(a[i]); if a[i] > max then max := a[i]; sum := sum + a[i]; end; if n = 0 then sec := 0 else sec := sum - max; writeln(sec); end.
Объяснение кода листинга программы
- Объявлены переменные:
- a: массив из 100 целых чисел;
- i, n, kol, max, sec, sum: целочисленные переменные.
- Считывается значение переменной n.
- Инициализируются переменные max, kol, sum.
- Происходит обход массива a от элемента с индексом 1 до элемента с индексом n.
- Если элемент a[i] больше max, то обновляется max.
- К переменной sum прибавляется значение элемента a[i].
- Если n равно 0, то sec присваивается 0.
- Иначе, sec вычисляется как сумма всех элементов массива a, кроме максимального.
- Выводится значение переменной sec.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д