printРабочее место участника

printЗадачи

1847. Формула Счастья

Ограничения: время – 500ms/1000ms, память – 2800KiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (1)

Как-то сумеречной порой знаменитый конструктор Трурль пришел к своему другу Клапауцию задумчивый и молчаливый. Когда же приятель попробовал развеселить его последними кибернетическими анекдотами, неожиданно отозвался:
- Напрасно хмурое расположение моего духа пытаешься ты обратить во фривольное! Меня снедает открытие столь же печальное, сколь несомненное: я понял, что, проведя всю жизнь в неустанных трудах, для Всеобщего Блага мы не сделали ничего! Представь себе только, каким изумительным монументом нашего с тобой конструкторства была бы сияющая где-то в небе планета, к которой премножество племен галактических с упованием возводили бы очи, восклицая: "Да! Поистине, счастье возможно, в виде неустанной гармонии, как доказал великий конструктор Трурль при некотором участии друга своего Клапауция, и свидетельство этого здравствует и процветает в пределах досягаемости нашего восхищенного взора!"
- Знаешь что, Трурль? Надо бы тебя заковать и засадить в погреб, чтобы дать время опомниться. Ведь если ты и создашь неведомо где счастливцев (в чем я сомневаюсь), по-прежнему останутся создания гадкие и жестокие, и разгорится такая зависть, такие пойдут раздоры и склоки, что ты окажешься перед выбором не слишком приятным: либо твои счастливцы уступят завистникам, либо придется им этих докучных, настырных и дефективных перебить до единого – ради полной гармонии.
Трурль в бешенстве вскочил, но опомнился и разжал кулаки.
- Прощай, Фома неверующий! – заявил он холодно. – Не словами я отвечу тебе, но делом!
Воротившись домой, Трурль принялся за сочинение Формулы Счастья. За один гед (единицу счастья) он принял интенсивность блаженства путника, который с гвоздем в ботинке протопал четыре мили, а после гвоздь вынул. Путь конструктор помножил на время, поделил на колючесть гвоздя, вынес за скобки коэффициент натертости пятки и таким образом выразил счастье в системе сантиметр-грамм-секунда. Это приободрило его. Он вычислил значение Формулы еще в нескольких точках и решил изобразить их на графике.
Напишите программу, которая позволяет нарисовать график зависимости `y` от `x` по ее табличному представлению. График нужно изобразить с помощью символов '|' (вертикальная черта) для изображения оси `Y`, '-' (минус) для изображения оси `X`, '+' (плюс) для изображения пересечения оси `X` и оси `Y`, '*' (звездочка) для изображения точек зависимости и '.' (точка) для незаполненных участков. Ось `X` на графике направлена вправо, а ось `Y` – вверх. Один символ на графике соответствует единице по оси `X` по горизонтали и единице по оси `Y` по вертикали. Оси `X` и `Y` обязательно должны присутствовать на графике, но они могут оказаться полностью закрыты символами '*'.
Формат ввода
Во входном файле в первой строке содержится целое число `N` (`1\ ≤\ N\ ≤\ 1000`) – количество известных значений переменной `y`. Далее следует `N` строк с двумя целыми числами `x_i` и `y_i` (`-1000\ ≤\ x_i\ ≤\ 1000`, `-1000\ ≤\ y_i\ ≤\ 1000`, `i=1…N`), разделенными пробелом – значения Формулы в зависимости от параметра `x`. Трурль мог вычислять значения Формулы для одного `x` несколько раз и получить при этом разные результаты.
Формат вывода
В выходной файл вывести одну или более строк. Первая строка соответствует максимальному значению `y` (или 0), а последняя – минимальному значению `y` (или 0). Во всех строках содержится одинаковое количество символов, необходимое и достаточное для изображения всех вычисленных значений и оси `Y`. Первый символ строки соответствует минимальному значению `x` (или 0), а последний – максимальному значению `x` (или 0). В позиции, соответствующей оси `X`, выводится символ '-', в позиции, соответствующей оси `Y`, – символ '|', на пересечении осей – символ '+', а в позициях, соответствующем точкам `(x_i,\ y_i)` – символ '*'. В остальных позициях выводится символ '.'.

Пример ввода

8
-10 5
-7 3
-4 2
-9 4
0 1
6 -1
3 0
8 -3

Вывод для примера

*.........|........
.*........|........
...*......|........
......*...|........
..........*........
----------+--*-----
..........|.....*..
..........|........
..........|.......*
loading