Задача №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” - если список не принадлежит ни одному типу.
Первое задание:
1) 3
2) 6
3) 5
Второе задание:
1) 1
2) 3
Третие:
//Язык программирования java
package com.niksonbinsk;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int space_left = 0;
int count = 0;
Scanner s = new Scanner(System.in);
ArrayList<Integer> str = new ArrayList<>();
while(space_left != 30){
System.out.println("Enter next num:");
str.add(s.nextInt());
space_left++;
}
for(int i =0;i<30;i++){
if(str.get(i) % 2 == 0){
count++;
}
}
System.out.println(count);
}
}
Объяснение:
var i,j,n,ans:integer;
begin
read(n);
for i:=1 to 9 do
for j:=0 to 9 do
if i+j=n then
ans:=ans+1;
writeln(ans);
end.
2)
uses crt;
var i,n:integer;
x:array[1..100] of integer;
begin
writeln('Введите количество x и значения: ');
read(n);
for i:=1 to n do
read(x[i]);
writeln('x y');
for i:=1 to n do
writeln(x[i],' ',x[i]*x[i]+3);
end.
3.
uses crt;
var i:integer;
begin
for i:=1 to 5 do
write(i*i*i,' ');
end.
4.
uses crt;
var i,n,sum:real;
begin
writeln('Введите N:');
read(n);
i:=3;
while i<=n do
begin
sum:=sum+1/i;
i:=i+3;
end;
writeln(sum);
end.
5.
uses crt;
var j,i,n,sum:integer;
a:array[1..100] of integer;
begin
writeln('Введите количество чисел и сами числа:');
read(n);
for i:=1 to n do
begin
sum:=0;
read(a[i]);
for j:=1 to length(inttostr(a[i])) do
sum:=sum+strtoint(inttostr(a[i])[j]);
if sum mod 3 = 0 then
write(a[i],' ');
end;
end.
6.a)uses crt;
var n:string;
begin
read(n);
writeln(max(strtoint(n[1]),strtoint(n[2])));
end.
б)
uses crt;
var n:string;
begin
read(n);
writeln(max(max(strtoint(n[1]),strtoint(n[2])),strtoint(n[3])));
end.