Определите общее количество посетителей между днем, когда посетителей было меньше всего - Free Pascal
Формулировка задачи:
На Всемирной выставке научно-технических достижений велась статистика посещений. Определите общее количество посетителей между днем, когда посетителей было меньше всего, и днем, когда посещений было максимальное количество.
Формат входных данных
В первой строке водится число N - количество дней, в течение которых работала выставка (2⩽N⩽30). Во второй строке даны через пробел N натуральных чисел, каждое не превышает 32000.
Формат результата
Одно число, являющееся ответом на вопрос.
Примеры
Входные данные
5
3442 2980 3117 3635 2999
Результат работы
9732
Решение задачи: «Определите общее количество посетителей между днем, когда посетителей было меньше всего»
textual
Листинг программы
var a:array[1..30] of integer; n,mn,mx,s: longint; begin readln(n); mn:=1; mx:=1; for n:=1 to n do begin read(a[n]); if a[mn]>a[n] then mn:=n; if a[mx]<a[n] then mx:=n; end; s:=0; if mn>mx then begin n:=mn;mn:=mx;mx:=n;end; for n:=mn to mx do s:=s+a[n]; writeln(s); end.
Объяснение кода листинга программы
- В коде объявлены следующие переменные: — a: массив из 30 целых чисел; — n, mn, mx, s: длинные целые числа.
- Сначала вводится значение переменной n (количество дней).
- Затем инициализируются переменные mn и mx значением 1.
- Далее выполняется цикл по всем дням (n), в котором считывается значение каждого дня (a[n]) и выполняются следующие действия: — Если текущий день (a[n]) больше, чем день с минимальным значением (a[mn]), то обновляется значение переменной mn. — Если текущий день (a[n]) меньше, чем день с максимальным значением (a[mx]), то обновляется значение переменной mx.
- После выполнения цикла, в переменной s подсчитывается общее количество дней с меньшим значением, чем день с минимальным значением (a[mn]).
- Если mn больше mx, то значения переменных mn и mx меняются местами.
- Наконец, выводится значение переменной s.