Meeep
08.12.2020 11:30

Задача №1698. Гомо или гетеро? Максимальное время работы на одном тесте:

3 секунды

Максимальный объем используемой памяти:

256 мегабайт

Определим две операции над списком целых чисел:

insert number – добавляет заданное число в конец списка
delete number – удаляет первое вхождение заданного числа из списка. Если список не содержит заданного числа, то ничего не меняется.
Например, результатом добавления числа 4 в список [1, 2, 1] будет список [1, 2, 1, 4]. Если мы удалим число 1 из этого списка, то получим список [2, 1, 4], но если мы попытаемся удалить число 3 из списка [1, 2, 1, 4], то список останется неизменным.

Список называется гомогенным, если он содержит хоты бы два одинаковых числа и гетерогенным, если содержит хотя бы два различных числа. Например, список [2, 2] является гомогенным, список [2, 1, 4] – гетерогенным, список [1, 2, 1, 4] – одновременно и тем и другим, а пустой список не является ни гомогенным, ни гетерогенным.

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

Формат входных данных

Первая строка содержит целое число n – количество операций (1 ≤ n ≤ 100 000).

Следующие n строк содержат описания операций. Каждая операция описывается словом “insert” или “delete” и числом k – аргументом операции (-109 ≤ k ≤ 109).

Формат выходных данных

Для каждой операции выведите строку, содержащую единственное слово, описывающее состояние списка после этой операции:

“both” - если список одновременно является и тем и другим
“hetero” - если список является гетерогенным
“homo” - если список является гомогенным
“neither” - если список не принадлежит ни одному типу.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Olesyalesya55
25.12.2021 15:12

var

       a: array [1..30] of Integer;

       min, max: Word;

       i: Byte;

begin

       Randomize;

       

       for i := 1 to 30 do

               a[i] := Random (20000);

       

       max := a[1];

       min := a[1];

       

       for i := 2 to 30 do begin

               if a[i] > max then

                       max := a[i];

               if a[i] < min then

                       min := a[i]

       end;

       Write (min + max)              

end.    

Есть приложение FlowChart для создания блок-схем из кода, я его и использовал.    


Доброй ночи) Составить алгоритм (блок схему) и написать программу нахождения суммы минимального и ма
0,0(0 оценок)
Ответ:
AvroraMessi
02.03.2023 04:05

ответ: Delphi/Pascal

program Matrix24;

var

 a:array [1..10,1..10] of integer;

 Max,M, N, i, j:Integer;

 

begin

Write('N: ');

Readln(N);

Write('M: ');

Readln(M);

 

 

for  i:=1 to M do

 begin

  writeln(i,': ');

  for j:=1 to N do

   begin

    Write(j,' : ');

    Read(a[i,j]);

   end;

 end;

 

for  j:=1 to N do

 begin

  writeln(j,': ');

  Max:=a[1,j];

  for i:=2 to M do

   begin

    if a[i,j]>Max then Max:=a[i,j];

   end;

  writeln('Масимальный элемент:',Max);

 end;

end

program Matrix24;

var

 a:array [1..10,1..10] of integer;

 Max,M, N, i, j:Integer;

 

begin

Write('N: ');

Readln(N);

Write('M: ');

Readln(M);

 

 

for  i:=1 to M do

 begin

  writeln(i,': ');

  for j:=1 to N do

   begin

    Write(j,' : ');

    Read(a[i,j]);

   end;

 end;

 

for  j:=1 to N do

 begin

  writeln(j,': ');

  Max:=a[1,j];

  for i:=2 to M do

   begin

    if a[i,j]>Max then Max:=a[i,j];

   end;

  writeln('Масимальный элемент:',Max);

 end;

end.

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