Problem iki modeldə təqdim olmalıdır: set funksiyasından istifadə edərək. Tutaq ki, Yura tərəfindən seçilmiş bir rəqəmdir. Əgər artıq sette mövcuddursa, "Yes" və settin ölçüsünü çıxarırıq. Əks halda settə əlavə edirik, "No" və settin ölçüsünü çıxarırıq.
Alqoritmin reallaşdırılması
Set elan edək.
set<int> s;Sorğuların sayını oxuyuruq .
scanf("%d",&n);sorğularını ardıcıl olaraq işləyirik.
for(i = 1; i <= n; i++)
{Yura tərəfindən seçilmiş rəqəmini oxuyuruq.
scanf("%d",&x);Əgər setində yoxdursa, onu əlavə edirik, "No" və settin ölçüsünü çıxarırıq.
if(s.find(x) == s.end())
{
s.insert(x);
printf("No %d\n",s.size());
}
elseƏgər setində varsa, "Yes" və settin ölçüsünü çıxarırıq.
printf("Yes %d\n",s.size());
}Java reallaşdırılması
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 reallaşdırılması
Sorğuların sayını oxuyuruq .
n = int(input())Set elan edək.
s = set()sorğularını ardıcıl olaraq işləyirik.
for _ in range(n):Yura tərəfindən seçilmiş rəqəmini oxuyuruq.
x = int(input())Əgər setində varsa, "Yes" çıxarırıq.
if x in s:
print("Yes", end = ' ')
else:Əgər setində yoxdursa, onu əlavə edirik və "No" çıxarırıq.
s.add(x)
print("No", end = ' ')"Yes" və ya "No" mesajı sonrası settin ölçüsünü çıxarırıq.
print(len(s))