Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
2 / 2 / 0
Регистрация: 05.06.2019
Сообщений: 82
1

Олимпиадная задача по программированию. PascalABC.NET

27.11.2019, 18:36. Показов 1398. Ответов 10
Метки нет (Все метки)

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

Помогите рассчитать, кто сколько купюр получит.

Формат ввода
В первой строке содержится число N (1 ≤ N ≤ 1000000) – количество купюр.

Во второй строке записано N натуральных чисел, не превосходящих 1000000000 – номиналы купюр.

Формат вывода
Выведите через пробел три числа: сколько купюр достанется Васе, Пете и Коле соответственно.

Пример 1
Ввод
4
1 2 3 4
Вывод
1 1 2
Пример 2
Ввод
5
2 2 4 4 4
Вывод
3 2 0

Я написал такой код:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
program delehka;
var
  i, n, s, ma, mi, sl, a: longint;
begin
  readln(n); 
  mi := 1000000001; 
  ma := -1;
  for i := 0 to n - 1 do
  begin
    read(a); 
    if ma < a Then
      begin
        ma := a;
        s := 0;
      end;      
    if mi > a Then
      begin
        mi := a;
        sl := 0;
      end;    
    if a = ma then 
      inc(s);
    if a = mi then 
      inc(sl);
  end;
  if ma = mi then 
    write(0, ' ', n, ' ', 0)
  else   
    writeln(s, ' ', sl, ' ', n - s - sl);  
end.
70/100 баллов. Скажите, пожалуйста, что не так
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2019, 18:36
Ответы с готовыми решениями:

Олимпиадная задача по программированию. PascalABC.NET
Найти количество целых решений, удовлетворяющих неравенству: A ≤ B*x + C ≤ D. Формат ввода В...

Олимпиадная задача по программированию. PascalABC.NET
Здравствуйте, я готовлюсь к школьной олимпиаде по информатике, не могу решить задачу (85 баллов из...

Олимпиадная задача по программированию. PascalABC.NET. Задача L. Переключение между окнами
Когда пользователь работает в операционной системе Winux, у него часто запущено несколько...

Олимпиадная задача по программированию. PascalABC.NET. Задача С. Считалка
Ирочка попросила маму придумать новую считалочку. Мама тут же ей &quot;выдала&quot;. Пусть в кругу N...

10
Почетный модератор
64087 / 47496 / 32734
Регистрация: 18.05.2008
Сообщений: 115,182
27.11.2019, 18:48 2
Я бы создал массив a[1..n]. Отсортировал его по убыванию. Затем посчитал равные первому с начала и равные последнему с конца.
1
2 / 2 / 0
Регистрация: 05.06.2019
Сообщений: 82
27.11.2019, 18:50  [ТС] 3
проблема в том, что у меня 6 неправильных ответов, из них 2 не прошли по времени, остальное неправильные ответы, а почему неправильно никак не могу понять
0
Status 418
Эксперт Python
2180 / 1272 / 394
Регистрация: 26.11.2017
Сообщений: 3,547
Записей в блоге: 1
27.11.2019, 18:55 4
sadfasfsad, когда сдаете выберете PascalABC.NET? попробуйте выбрать Free Pascal
1
2 / 2 / 0
Регистрация: 05.06.2019
Сообщений: 82
27.11.2019, 19:00  [ТС] 5
Теперь 75/100 баллов)) Пропали все time limit. Большое спасибо. А что в алгоритме неправильного? Почему 5 Wrong Answer?
0
Status 418
Эксперт Python
2180 / 1272 / 394
Регистрация: 26.11.2017
Сообщений: 3,547
Записей в блоге: 1
27.11.2019, 19:01 6
Лучший ответ Сообщение было отмечено sadfasfsad как решение

Решение

4
2 2 2 2
Ответ?
2
2 / 2 / 0
Регистрация: 05.06.2019
Сообщений: 82
27.11.2019, 19:03  [ТС] 7
0 4 0. А получается все деньги забрать должен первый?
0
Status 418
Эксперт Python
2180 / 1272 / 394
Регистрация: 26.11.2017
Сообщений: 3,547
Записей в блоге: 1
27.11.2019, 19:05 8
Вася же первый забирает? Так в условии написано.
0
2 / 2 / 0
Регистрация: 05.06.2019
Сообщений: 82
27.11.2019, 19:06  [ТС] 9
Да, Вася забирает первый
0
Status 418
Эксперт Python
2180 / 1272 / 394
Регистрация: 26.11.2017
Сообщений: 3,547
Записей в блоге: 1
27.11.2019, 19:07 10
int64, еще вместо longint нужно
2
2 / 2 / 0
Регистрация: 05.06.2019
Сообщений: 82
27.11.2019, 19:38  [ТС] 11
Большое спасибо!!! 100/100 баллов

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
program delehka;
 
var
  i, n, s, ma, mi, sl, a: int64;
 
begin
  readln(n); 
  mi := 1000000001; 
  ma := -1;
  for i := 1 to n do
  begin
    read(a);
    if ma < a Then
    begin
      ma := a;
      s := 1;
    end
    else
    if a = ma then    
      inc(s);    
    
    if mi > a Then
    begin
      mi := a;
      sl := 1;
    end
    else
    if a = mi then 
      inc(sl);   
    
  end;
  if ma = mi then 
    write(n, ' 0 0')
  else   
    writeln(s, ' ', sl, ' ', n - s - sl);  
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2019, 19:38

В чем разница PascalABC.net и PascalABC
Скажите в чем разница PascalABC.net И PascalABC. Помню когда-то давно программы работающие в...

Установится ли PascalABC.NET на систему, где установлен только .NET 4.6.1?
Привет всем. Вопрос, собственно, озвучен выше. Конкретнее: есть компьютер со свежеустановленной...

Олимпиадная задача по программированию
Помогите написать программу для решения следующей задачи (из Всесибирской Открытой Олимпиады...

Олимпиадная задача по программированию: Таджикские имена
Отсортировать N слов по алфавиту. Разделить по группам те которые заканчиваются на &quot;хон&quot;,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru