Силуета града
vreme | memorija | ulaz | izlaz |
---|---|---|---|
0,3 s | 64 Mb | standardni izlaz | standardni ulaz |
Са брода се виде зграде на обали велеграда. Дуж обале је постављена координатна оса и за сваку зграду се зна позиција левог краја, висина и позиција десног краја. Написати програм који израчунава силуету града.
Силуета је део-по-део константна функција и одређена је интервалима константности \((-\infty, x_0)\), \([x_0, x_1)\), \([x_1, x_2)\), …, \([x_{n-1}, +\infty)\), одређеним тачкама поделе \(x_0 < x_1 < \ldots < x_{n-1}\) и вредностима \(0\), \(h_0\), …, \(h_{n-2}\) и \(h\) функције на сваком од интервала.
\[ \begin{array}{ccccccccccccc} & 0 & & h_0 & & h_1 & & \ldots & & h_{n-2} & & 0 &\\ -\infty & & x_0 & & x_1 & & x_2 & \ldots & x_{n-2} & & x_{n-1} & & +\infty \end{array} \]
Подразумевамо да су крајње тачке \(-\infty\) и \(+\infty\) и да су вредности на тим интервалима једнаке нули. Дакле, део-по-део константна функција се може представити помоћу \(n\) тачака \(x_0, \ldots x_{n-1}\) и \(n-1\) вредности \(h_0, \ldots, h_{n-2}\). Једноставности ради ми ћемо овакве функције представљати помоћу \(n\) уређених парова \((x_0, h_0)\), \((x_1, h_1)\), …, \((x_{n-2}, h_{n-2})\) и \((x_{n-1}, 0)\). Дакле, наш алгоритам прима низ уређених тројки који описује појединачне зграде, а враћа низ уређених парова који описује силуету.
Улаз
Са стандардног улаза се учитава број зграда \(n\), а затим, у \(n\) наредних линија по три цела броја раздвојена са по једним размаком: леви крај зграде, десни крај зграде и висина зграде.
Излаз
На стандардни излаз исписати силуету описану преко низа промена висина.
Пример
Улаз
4 1 4 4 4 5 5 4 7 6 0 9 2
Излаз
0 2 1 4 4 6 7 2 9 0
Објашњење
Са леве стране су приказане зграде, а са десне силуета.
Овај задатак има и другачија решења у делу збирке који следи.
Morate biti ulogovani kako biste poslali zadatak na evaluaciju.