aksnastena
13.08.2022 13:01

Теперь в Хогвартсе новые правила приема. Все будущие чародеи и волшебники должны сначала сдать ЕГЭ по трем предметам (астрономии, заклинаниям, истории магии), получив по каждому предмету от 0 до включительно. Вести прием будущих учащихся школы поручили Распределительной шляпе, а у нее, конечно же, свой критерий того, кто из двух претендентов на поступление в школу лучше. Шляпа сравнивает соответствующие ЕГЭ двух претендентов и отдает предпочтение тому, у которого хотя бы по двум из трех предметов строго больше, чем у другого. Например если первый претендент набрал (25, 34, 75), а второй - (30, 40, 10), то шляпа выберет второго, так как у него по двум предметам выше, чем по этим же предметам у первого претендента.

Напишите программу, которая Распределительной шляпе выбрать одного из двух претендентов на обучение в Хогвартсе.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Еленка871
10.09.2020 01:18
PascalABC.NET 3.4.2, сборка 1863 от 10.11.2018Внимание! Если программа не работает, обновите версию!

begin

 var N, A, B, C, D: integer;

 Readln(N, A, B, C, D);

 if A > C then (A, B, C, D) := (C, D, B, A);

 var s := 1.To(A - 1);

 if B < C then // ( ) [ ]

   s := s + B.Downto(A) + (B + 1).To(C - 1) +

       D.Downto(C) + (D + 1).To(N)

 else

 if D < B then // ( [ ] )

 begin

   s := s + SeqGen(C - A, t -> B - t) +

       SeqGen(D - C + 1, t -> t + A + B - D) +

       SeqGen(B - D, t -> A - t + B - D - 1) + (B + 1).To(N)

 end

   else // ( [ ) ]

 begin

   s := s + SeqGen(C - A, t -> B - t) +

       SeqGen(D - B, t -> D - t) + SeqGen(B - C + 1, t -> A + t) +

       (D + 1).To(N);

 end;

 s.Println;

end.

0,0(0 оценок)
Ответ:
V1a9
10.09.2020 01:18
PascalABC.NET 3.4.2, сборка 1863 от 10.11.2018Внимание! Если программа не работает, обновите версию!

begin

 var N, A, B, C, D: integer;

 Readln(N, A, B, C, D);

 if A > C then (A, B, C, D) := (C, D, B, A);

 var s := 1.To(A - 1);

 if B < C then // ( ) [ ]

   s := s + B.Downto(A) + (B + 1).To(C - 1) +

       D.Downto(C) + (D + 1).To(N)

 else

 if D < B then // ( [ ] )

 begin

   s := s + SeqGen(C - A, t -> B - t) +

       SeqGen(D - C + 1, t -> t + A + B - D) +

       SeqGen(B - D, t -> A - t + B - D - 1) + (B + 1).To(N)

 end

   else // ( [ ) ]

 begin

   s := s + SeqGen(C - A, t -> B - t) +

       SeqGen(D - B, t -> D - t) + SeqGen(B - C + 1, t -> A + t) +

       (D + 1).To(N);

 end;

 s.Println;

end.

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота