아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Кусочно-линейные функции

시간 제한3초메모리 제한1024 MB

요약
주어진 구간 [x1, xn]에서 꺾은선 함수와 일치하도록 ±|a_i x + b_i| 꼴의 항 n개를 가진 모듈러 함수를 만든다.
난이도

보통10점 중 6점

유형
수학, 기하, 구현
정답자
아직 제출이 없습니다

문제

Вадим --- большой фанат кусочно-линейных функций. Они имеют свои ограничения, и не любую функцию можно представить как кусочно-линейную. Вадим вам с радостью расскажет, что это такое.

Функция называется кусочно-линейной, если её график можно представить ломаной из nn вершин. А именно, она задаётся nn парами чисел (x_1,y_1),(x_2,y_2),…,(x_n,y_n)(x\_1, y\_1), (x\_2, y\_2), \ldots, (x\_n, y\_n), которые являются координатами вершин ломаной. Обязательно должно выполняться условие x_1<x_2<x_3<…<x_n.x\_1 < x\_2 < x\_3 < \ldots < x\_n.

Этот набор точек задаёт функцию от одного аргумента, значение которой в x_ix\_i равно y_iy\_i, а на промежутках между этими точками она линейная. Область определения такой функции --- это отрезок \[x_1,x_n]\[x\_1, x\_n].

Валя придумал свой класс функций с одной переменной, которые он назвал модульными. Модульная функция состоит из nn слагаемых, каждое из которых имеет один из двух видов: ∣a_i⋅x+b_i∣|a\_i \cdot x + b\_i| или −∣a_i⋅x+b_i∣-|a\_i \cdot x + b\_i|. Здесь xx --- переменная, а a_ia\_i и b_ib\_i --- параметры функции, а ∣…∣| \ldots | обозначает взятие по модулю. Таким образом, модульная функция с nn слагаемыми имеет вид ±∣a_1x+b_1∣±∣a_2x+b_2∣±…±∣a_nx+b_n∣.\pm|a\_1 x + b\_1| \pm |a\_2 x + b\_2| \pm \ldots \pm |a\_n x + b\_n|.

Вадим захотел проверить, не хуже ли модульные функции его любимых кусочно-линейных. Он принёс кусочно-линейную функцию с nn вершинами. Постарайтесь теперь найти модульную функцию с ровно nn слагаемыми, которая будет тождественна равна данной кусочно-линейной на отрезке \[x_1,x_n]\[x\_1, x\_n].

입력

В первой строке дано целое число nn --- количество вершин ломаной (2≤n≤105)(2 \le n \le 10^5).

Далее идёт nn строк, в каждой из которых через пробел даны два целых числа x_ix\_i, y_iy\_i --- координаты очередной вершины (−105≤x_i,y_i≤105-10^5 \le x\_i, y\_i \le 10^5).

Гарантируется, что координаты x_ix\_i идут строго по возрастанию, то есть x_1<x_2<x_3<…<x_n.x\_1 < x\_2 < x\_3 < \ldots < x\_n.

출력

Выведите в единственной строке модульную функцию из ровно nn слагаемых, тождественно равную данной кусочно-линейно функции на отрезке \[x_1,x_n]\[x\_1, x\_n]. Придерживайтесь формата, показанного в примерах.

Функция должна состоять из nn слагаемых ∣a_ix+b_i∣|a\_i x + b\_i|, разделённых знаками + и - (коды 43 и 45). Разрешается перед первым слагаемым поставить ведущий минус. Каждое слагаемое должно быть взято по модулю двумя символами | (код 124). Внутри слагаемого должен быть знак + (или -, если b_ib\_i отрицательно). Левый операнд состоит из вещественного числа a_ia\_i и переменной xx (код 120); знак умножения между ними не нужно писать, он подразумевается. Опускать a_ia\_i или b_ib\_i нельзя, даже если a_i=1a\_i = 1 или b_i=0b\_i = 0; нельзя также опускать левый операнд, если a_i=0a\_i = 0.

Таких слагаемых должно быть ровно nn. Разрешено использовать слагаемые, тождественно равные нулю. Они могут быть записаны как |0x+0|.

Размер выходного файла должен быть не больше 88 МБ. Ответ считается правильным, если в любой точке отрезка \[x_1,x_n]\[x\_1, x\_n] значение вашей модульной функции отличается от значения данной кусочно-линейной не более, чем на 0.010.01.

힌트

Иллюстрация к третьему примеру:

예제3

  1. 예제 1

    입력
    2
    1 0
    2 1
    
    예상 출력
    -|0x-1|+|1x+0|
    
  2. 예제 2

    입력
    2
    0 1
    1 2
    
    예상 출력
    |1x-0|+|0x+1|
    
  3. 예제 3

    입력
    3
    -1 1
    0 -1
    1 0
    
    예상 출력
    |-0.5x+1|-|0x-2|+|-1.5x-0|