Все
Математика
Алгебра
Геометрия
Литература
Русский язык
Истоки
Краеведение
Французский язык
Литературное чтение
Астрономия
Природоведение
Родной край
Немецкий язык
Технология
Физика
Английский язык
Обществознание
Химия
Биология
История
О`zbek tili
Окружающий мир
Естествознание
География
Украинский язык
Информатика
Украинская литература
Казахский язык
Физкультура и спорт
Экономика
Музыка
Право
Белорусский язык
МХК
Кубановедение
ОБЖ
Психология
Кыргыз тили
Другие предметы
Показать все предметы
Алджазира
08.12.2021, 18:00
Информатика
Вася с Петей и Колей заработали много денег. Чтобы не мучиться с дележкой, они решили, что сначала Вася заберет все купюры максимального достоинства, затем Петя - минимального, а все оставшиеся - Коля Помогите рассчитать, кто сколько купюр получит.
Формат входных данных
В первой строке содержится число N (1 ≤ N ≤ 1000000) - количество купюр. Во второй строке записано N натуральных чисел, не превосходящих 109 - номиналы купюр.
Формат выходных данных
Выведите через пробел три числа: сколько купюр достанется Васе, Пете и Коле соответственно.
Пример
input. txt | output. txt
4 |
1 2 3 4 | 1 1 2
5
2 2 4 4 4 | 3 2 0
Знаешь ответ?

Чтобы оставить ответ, или зарегистрируйтесь.

Ответ или решение 1
Теплинский Миша
program delehka (input, output) ;
var a:Array[1 ... 1000010] of longint;
i, n, s, ma, mi, sl:longint;
begin
assign (input,'input. txt') ;
reset (input) ;
assign (output,'output. txt') ;
rewrite (output) ;
readln (n) ;
mi: = (1 shl 30) ;
ma: = - (1 shl 30) ;
for i:=1 to n do begin read (a[i]) ;
ma:=max (ma, a[i]) ;
mi:=min (mi, a[i]) ;
end;
if ma=mi then write (0,'', n,'',0)
else
begin for i:=1 to n do
begin
if a[i]=ma then s:=s+1;
if a[i]=mi then sl:=sl+1;
end;
writeln (s,' ', sl,' ', n-s-sl) ;
close (input) ;
close (output) ;
end;
end.