В задачі слід промоделювати роботу з множиною set. Нехай — число, задумане Юрою. Якщо уже присутнє в множині, виводимо "Yes" і розмір множини. Інакше додаємо до множини, виводимо "No" і розмір множини.
Реалізація алгоритму
Оголосимо множину .
set<int> s;Зчитаємо кількість запитів .
scanf("%d",&n);Послідовно обробляємо запитів.
for(i = 1; i <= n; i++)
{Зчитаємо число , яке задумав Юра.
scanf("%d",&x);Якщо числа немає в множині , то заносимо його туди, виводимо "No" і потужність множини.
if(s.find(x) == s.end())
{
s.insert(x);
printf("No %d\n",s.size());
}
elseЯкщо число присутнє в множині , то виводимо "Yes" і потужність множини.
printf("Yes %d\n",s.size());
}Java реалізація
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
TreeSet<Integer> s = new TreeSet<Integer>();
int n = con.nextInt();
for(int i = 0; i < n; i++)
{
int x = con.nextInt();
if (s.contains(x))
System.out.println("Yes " + s.size());
else
{
s.add(x);
System.out.println("No " + s.size());
}
}
con.close();
}
} Python реалізація
Зчитаємо кількість запитів .
n = int(input())Оголосимо множину .
s = set()Послідовно обробляємо запитів.
for _ in range(n):Зчитаємо число , яке задумав Юра.
x = int(input())Якщо число присутнє в множині , то виводимо "Yes".
if x in s:
print("Yes", end = ' ')
else:Якщо числа немає в множині , то заносимо його туди і виводимо "No".
s.add(x)
print("No", end = ' ')Після повідомлення "Yes" або "No" виводимо потужність множини.
print(len(s))