Romabl4
27.01.2021 11:22

Help, please!! В одном известном магазине случилась распродажа, однако администрация не учла одну проблему: в магазине всего одна касса! Сразу после начала распродажи возле кассы организовалась
длинная очередь. Никто не любит очереди, поэтому у покупателей постепенно возрастает уровень
агрессии. От вас требуется рассмотреть процесс продвижения очереди.
Могут происходить события трёх типов:
1. В конец очереди встал человек с уровнем агрессии a;
2. Первый человек в очереди начал ругаться с кассиром, в результате чего уровень его агрессии
увеличился на x, а уровень агрессии каждого из остальных людей в очереди (если в очереди
стоит не один человек) увеличился на y;
3. Первый человек в очереди оплатил покупку и ушёл из магазина.
От вас требуется обработать N событий. Будем считать, что изначально очередь пуста. Так как
администрация магазина заботится о своей репутации, им важно знать, насколько агрессивными их
покупатели уходят из магазина. Поэтому для каждого события третьего типа нужно определить
уровень агрессии человека, который ушёл из магазина.
Формат входных данных
В первой строке записано одно число N — количество событий (2 6 N 6 300000).
В каждой из следующих N строк содержится описание очередного события:
• 1 a, если произошло событие первого типа;
• 2 x y, если произошло событие второго типа;
• 3, если произошло событие третьего типа.
Для всех событий верно, что 1 6 a, x, y 6 109
. Гарантируется, что события второго и третьего
типов происходят только в том случае, если в очереди есть хотя бы один человек. Также гарантируется, что после N событий в очереди не останется ни одного человека. Возможны случаи, когда
первый человек в очереди несколько раз подряд ссорится с кассиром.
Формат выходных данных
Для каждого запроса третьего типа выведите одно число — уровень агрессии человека, который
ушёл из магазина. Каждое число следует выводить на отдельной строке.
Пример
стандартный ввод стандартный вывод
8
1 4
1 2
2 6 1
3
2 10 20
1 1
3
3
output
10
13
1
Замечание
Сначала в очередь встали два человека с уровнями агрессии 4 и 2 соответственно. Затем первый
человек поссорился с кассиром, после чего уровни агрессии людей стали равны 10 и 3. После этого
первый человек ушёл из очереди, а второй поссорился с кассиром. Теперь уровень его агрессии
равен 13. Затем в очередь встал человек с уровнем агрессии 1, после чего оба человека ушли из
магазина.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
ksenya20042
16.12.2022 09:11
Точно должно работать для PascalABC.Net (версия 3.2, сборка 1341).
program Task;
var N,i,kol,sum:integer; //По-хорошему, не integer. Потому что мы работаем с натуральными числами, а не отрицательными
begin
read(N);
for i:=1 to N do 
begin
if (i mod 15)=0 then kol:=kol+1; //15 - это НОК(3,5)
end;
while (N<>0) do
begin
sum:=sum+N mod 10;
N:=N div 10;
end;
writeln('Количество чисел, делящихся и на 3, и на 5, равно ',kol);
writeln('Сумма цифр числа N равна', sum);
end.

Пиши, если что-то не работает или не понятно :)
0,0(0 оценок)
Ответ:
yuliana577
01.01.2021 03:39

const

   handsfree = false;

   nmax = 10;

   random_min = -50;

   random_max = 50;

var

   a: array[0..nmax] of real;

   i, n: integer;

   sum, x: real;

begin

   {ввод массива}

   n := nmax;

   if handsfree then begin

       for i := 0 to n do

       begin

           a[i] := random(random_max - random_min) + random_min;

           write(a[i], ' ');

       end

   end

   else begin

       for i := 0 to n do

           readln(a[i]);

   end;

   writeln();

   

   {подсчет суммы}

   write('x = ');

   readln(x);

   

   sum := a[n];

   for i := n - 1 downto 0 do

       sum := sum * x + a[i];

   writeln('S = ', sqrt(sum));

end.

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