Good Bye 2016 |
---|
Закончено |
У каждого пользователя Codeforces есть рейтинг, который описывается одним целым числом, возможно отрицательным или нулём. Все пользователи разделены на два дивизиона. К первому дивизиону относятся пользователи с рейтингом 1900 и выше. Пользователи с рейтингом 1899 и меньше относятся ко второму дивизиону. После каждого соревнования, в зависимости от показанного результата рейтинг пользователя изменяется на некоторое целое число, возможно отрицательное или ноль.
В 2016 году Лимак принял участие в n соревнованиях. Он помнит, что во время соревнования i он был дивизионе di (то есть он принадлежал данному дивизиону непосредственно перед началом данного соревнования) и после соревнования его рейтинг изменился на величину ci. Обратите внимание, отрицательные значения ci означают, что рейтинг уменьшился.
Какой максимальный рейтинг может быть у Лимака после всех n соревнований? Если его рейтинг может быть сколь угодно большим, то выведите «Infinity». Если информация является противоречивой и не может быть верной ни для какого значения рейтинга, выведите «Impossible».
В первой строке входных данных записано целое число n (1 ≤ n ≤ 200 000).
В i-й из последующих n строк записаны два целых числа ci и di ( - 100 ≤ ci ≤ 100, 1 ≤ di ≤ 2), описывающих изменение рейтинга после соревнования и дивизион Лимака во время i-го соревнования.
Если текущий рейтинг Лимака может быть сколь угодно большим, то выведите «Infinity» (без кавычек). Если информация из входных данных является невозможной, то выведите «Impossible» (без кавычек). В противном случае выведите максимально возможный рейтинг Лимака после всех n соревнований.
3
-7 1
5 2
8 2
1907
2
57 1
22 2
Impossible
1
-5 1
Infinity
4
27 2
13 1
-50 1
8 2
1897
В первом примере следующий сценарий соответствует всей информации из входных данных и максимально возможному итоговому рейтингу:
Во втором примере, ситуация что Лимак соревновался в дивизионе 1, а после увеличения рейтинга на 57 оказался в дивизионе 2, является невозможной.
Название |
---|