Кусочно-линейные функции
문제
Вадим --- большой фанат кусочно-линейных функций. Они имеют свои ограничения, и не любую функцию можно представить как кусочно-линейную. Вадим вам с радостью расскажет, что это такое.
Функция называется кусочно-линейной, если её график можно представить ломаной из вершин. А именно, она задаётся парами чисел , которые являются координатами вершин ломаной. Обязательно должно выполняться условие
Этот набор точек задаёт функцию от одного аргумента, значение которой в равно , а на промежутках между этими точками она линейная. Область определения такой функции --- это отрезок .
Валя придумал свой класс функций с одной переменной, которые он назвал модульными. Модульная функция состоит из слагаемых, каждое из которых имеет один из двух видов: или . Здесь --- переменная, а и --- параметры функции, а обозначает взятие по модулю. Таким образом, модульная функция с слагаемыми имеет вид
Вадим захотел проверить, не хуже ли модульные функции его любимых кусочно-линейных. Он принёс кусочно-линейную функцию с вершинами. Постарайтесь теперь найти модульную функцию с ровно слагаемыми, которая будет тождественна равна данной кусочно-линейной на отрезке .
입력
В первой строке дано целое число --- количество вершин ломаной .
Далее идёт строк, в каждой из которых через пробел даны два целых числа , --- координаты очередной вершины ().
Гарантируется, что координаты идут строго по возрастанию, то есть
출력
Выведите в единственной строке модульную функцию из ровно слагаемых, тождественно равную данной кусочно-линейно функции на отрезке . Придерживайтесь формата, показанного в примерах.
Функция должна состоять из слагаемых , разделённых знаками + и - (коды 43 и 45). Разрешается перед первым слагаемым поставить ведущий минус. Каждое слагаемое должно быть взято по модулю двумя символами | (код 124). Внутри слагаемого должен быть знак + (или -, если отрицательно). Левый операнд состоит из вещественного числа и переменной (код 120); знак умножения между ними не нужно писать, он подразумевается. Опускать или нельзя, даже если или ; нельзя также опускать левый операнд, если .
Таких слагаемых должно быть ровно . Разрешено использовать слагаемые, тождественно равные нулю. Они могут быть записаны как |0x+0|.
Размер выходного файла должен быть не больше МБ. Ответ считается правильным, если в любой точке отрезка значение вашей модульной функции отличается от значения данной кусочно-линейной не более, чем на .
힌트
Иллюстрация к третьему примеру:
[이미지 1]
예제
예제 1
2 1 0 2 1
-|0x-1|+|1x+0|
예제 2
2 0 1 1 2
|1x-0|+|0x+1|
예제 3
3 -1 1 0 -1 1 0
|-0.5x+1|-|0x-2|+|-1.5x-0|