Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2023

Old page Regulations Schedule RODO info Ranking

Problem description


Statystyki pozycyjne
(select)
Memory limit: 64 MB
Time limit: 1.00 s

Zrealizuj strukturę danych, w której będą możliwe następujące operacje:

  • insert(x) - wstaw element x, o ile nie jest on jeszcze w strukturze,
  • erase(x) - usuń element x,
  • select(k) - zwróć k-ty co do wielkości element.

Za pomocą swojej struktury zasymuluj jej działanie dla przykładowych operacji podanych na standardowym wejściu. Instrukcje będą zapisane w osobnych wierszach i oznaczają odpowiednio:

  • A x - insert(x)
  • E x - erase(x)
  • S k - select(k)

Wejście

W pierwszym wierszu standardowego wejścia znajduje się jedna liczba naturalna T oznaczająca liczbę zestawów danych. Po tym następuje opis każdego zestawu. Opis zestawu testowego składa się z serii instrukcji zapisanych w osobnych wierszach zakończonych instrukcją K 0. Możliwe instrukcje opisane są powyżej.

Wyjście

Dla każdego zestawu danych wypisz odpowiedzi do instrukcji zgodnie z poniższymi zasadami:

  • Dla każdej instrukcji E x, jeżeli element x nie należał w danym momencie do struktury, należy wypisać jedno słowo brak.
  • Dla każdej instrukcji S k należy wypisać wartość k-tego elementu w strukturze, jeśli takiego nie ma, należy wypisać jedno słowo brak.

Ograniczenia

1 ≤ T ≤ 10, 0 ≤ x ≤ 1 000 000. Łączna liczba instrukcji we wszystkich zestawach testowych nie przekracza 500 000.

Przykład

Input Output
2
A 10
A 101
A 1
A 13
A 14
A 154
A 2340
A 13240
E 222
K 0
A 10
A 101
A 1
A 13
A 14
A 154
A 2340
A 13240
E 222
S 1
S 2
S 3
S 4
S 5
K 0
brak
brak
1
10
13
14
101