← К соревнованиям

Олимпиада школьников "Innopolis Open"

Бриллиантовые руки

Сложность: 38%

У компании Бриллиантовые руки длинная и неоднозначная история. Начиная со дня основания, у нее было много и удачных, и неудачных дней. Для простоты будем считать, что в удачный день цена акции компании увеличивалась на единицу, а в неудачный день – уменьшалась на единицу. Как это часто бывает, удачные для компании дни шли длинными подряд идущими отрезками. Впрочем, то же самое можно сказать и про неудачные дни. Третьего не дано: каждый день был либо удачным, либо неудачным.

Вы хотите понять, какие отрезки дней были для компании удачными, а какие неудачными. Чтобы это сделать, вы добыли исторические данные цен акций компании в виде nn пар (di,pi)(d_i, p_i), означающие, что через did_i дней после выпуска акций разница с изначальной ценой составляла pip_i единиц (pip_i может быть произвольным целым числом, в том числе любым отрицательным).

Постройте описание истории компании в виде минимального числа отрезков удачных или неудачных дней, либо определите, что в данных ошибка, и восстановить подходящую под данные историю невозможно. Если существует несколько ответов с минимальным числом отрезков, выведите любой из них.

Входные данные

Первая строка содержит число nn (1n2000001 \le n \le 200\,000). Следующие nn строк содержат пары чисел di  pid_i \; p_i (1di1081 \le d_i \le 10^8; 108pi108-10^8 \le p_i \le 10^8; di<di+1d_i < d_{i+1} для всех ii от 11 до n1n - 1).

Выходные данные

Если в исторические данные закралась ошибка, выведите 1-1. Иначе, в первой строке выведите kk – количество отрезков дней. В каждой из следующих kk строк выведите пару li  cil_i \; c_i (1li1081 \le l_i \le 10^8; ci{+,}c_i \in \{{+}, {-}\}), означающую, что очередной отрезок длился lil_i дней и состоял из удачных дней, если ci=+c_i = {+}, либо из неудачных дней, если ci=c_i = {-}.

Описание отрезков дней должно идти в их хронологическом порядке, начиная со дня выпуска акций и заканчивая в день dnd_n, то есть, сумма всех lil_i должна быть равна dnd_n.

Подзадачи

баллынеобх. подзадачиограничения
0

0

-

Тесты из условия

1

6

-

n2000n \le 2000, если ответ существует, то k=1k = 1

2

8

1

n2000n \le 2000, если ответ существует, то k2k \le 2

3

10

2

n200000n \le 200\,000, если ответ существует, то k2k \le 2

4

28

-

n2000n \le 2000, di,pi2000d_i, p_i \le 2000

5

17

2, 4

n2000n \le 2000, di,pi108d_i, p_i \le 10^8

6

31

3, 5

n200000n \le 200\,000, di,pi108d_i, p_i \le 10^8

STDINSTDOUT
4
2 2
3 3
5 1
7 1
3
3 +
3 -
1 +
2
3 -3
7 -3
2
5 -
2 +
1
1 0
-1

Примечание

В первом примере, первые три дня были удачными, а значит, через 2 дня после выпуска акций разница составляла 2, а через 3 дня после выпуска разница составляла 3. За тремя удачными днями следовали три неудачных, и после 5 дней разница с изначальной ценой стала равна 1, а через 6 дней цена сравнялась с исходной. Последний, седьмой день был успешным, и финальная разница, после 7 дней, равна 1.