eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Следующий

Следующий

Реалізуйте структуру даних, яка підтримуєт множину \textbf{S} цілих чисел, з якою дозволено виконувати наступні операції: \begin{itemize} \item \textbf{add(i)} -- додати у множину \textbf{S} число \textbf{i} (якщо воно там вже є, то множина не змінюється); \item \textbf{next(i)} -- вивести мінімальний елемент множини, не менший \textbf{i}. Якщо шуканий елемент у структурі відсутній, необхідно вивести \textbf{--1}. \end{itemize} \InputFile Вхідна множина \textbf{S} порожня. Перший рядок вхідного файлу містить \textbf{n} -- кількість операцій (\textbf{1} ≤ \textbf{n} ≤ \textbf{300 000}). Наступні \textbf{n} рядків містять операції. Кожна операція має вид або "\textbf{+ i}", або "\textbf{? i}". Операція "\textbf{? i}" задає запит \textbf{next(i)}. Якщо операція "\textbf{+ i}" йде у вхідному файлі на початку або після іншої операції "\textbf{+}", то вона задає операцію \textbf{add(i)}. Якщо ж вона йде після запиту "\textbf{?}" і результатом цього запиту був \textbf{y}, то виконується операція \textbf{add((i+y) mod 10^9)}. У всіх запитах і операціях додавання параметри лежать в інтервалі від \textbf{0} до \textbf{10^9}. \OutputFile Для кожного запиту виведіть одне число -- відповідь на запит.
Ліміт часу 1 секунда
Ліміт використання пам'яті 128 MiB
Вхідні дані #1
6
+ 1
+ 3
+ 3
? 2
+ 1
? 4
Вихідні дані #1
3
4
Автор В.Гольдштейн
Джерело Зимние сборы в Харькове 2010 День 2