Кусочно-линейные функции
시간 제한3초메모리 제한1024 MB
주어진 구간 [x1, xn]에서 꺾은선 함수와 일치하도록 ±|a_i x + b_i| 꼴의 항 n개를 가진 모듈러 함수를 만든다.
문제
Вадим --- большой фанат кусочно-линейных функций. Они имеют свои ограничения, и не любую функцию можно представить как кусочно-линейную. Вадим вам с радостью расскажет, что это такое.
Функция называется кусочно-линейной, если её график можно представить ломаной из вершин. А именно, она задаётся парами чисел , которые являются координатами вершин ломаной. Обязательно должно выполняться условие
Этот набор точек задаёт функцию от одного аргумента, значение которой в равно , а на промежутках между этими точками она линейная. Область определения такой функции --- это отрезок .
Валя придумал свой класс функций с одной переменной, которые он назвал модульными. Модульная функция состоит из слагаемых, каждое из которых имеет один из двух видов: или . Здесь --- переменная, а и --- параметры функции, а обозначает взятие по модулю. Таким образом, модульная функция с слагаемыми имеет вид
Вадим захотел проверить, не хуже ли модульные функции его любимых кусочно-линейных. Он принёс кусочно-линейную функцию с вершинами. Постарайтесь теперь найти модульную функцию с ровно слагаемыми, которая будет тождественна равна данной кусочно-линейной на отрезке .
입력
В первой строке дано целое число --- количество вершин ломаной .
Далее идёт строк, в каждой из которых через пробел даны два целых числа , --- координаты очередной вершины ().
Гарантируется, что координаты идут строго по возрастанию, то есть
출력
Выведите в единственной строке модульную функцию из ровно слагаемых, тождественно равную данной кусочно-линейно функции на отрезке . Придерживайтесь формата, показанного в примерах.
Функция должна состоять из слагаемых , разделённых знаками + и - (коды 43 и 45). Разрешается перед первым слагаемым поставить ведущий минус. Каждое слагаемое должно быть взято по модулю двумя символами | (код 124). Внутри слагаемого должен быть знак + (или -, если отрицательно). Левый операнд состоит из вещественного числа и переменной (код 120); знак умножения между ними не нужно писать, он подразумевается. Опускать или нельзя, даже если или ; нельзя также опускать левый операнд, если .
Таких слагаемых должно быть ровно . Разрешено использовать слагаемые, тождественно равные нулю. Они могут быть записаны как |0x+0|.
Размер выходного файла должен быть не больше МБ. Ответ считается правильным, если в любой точке отрезка значение вашей модульной функции отличается от значения данной кусочно-линейной не более, чем на .
힌트
Иллюстрация к третьему примеру:
