Вася с Петей и Колей заработали много денег. Чтобы не мучиться с дележкой, они решили,...

0 голосов
73 просмотров

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


Информатика (12 баллов) | 73 просмотров
0

СРОЧНО

0

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.

Дан 1 ответ
0 голосов
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.
(34 баллов)
0

спасибо