<prompt> line ya jiji ni mtaro wa nje wa silhouette inayoundwa na majengo yote katika jiji hilo yanapotazamwa kwa mbali. Kwa kuzingatia maeneo na urefu wa majengo yote, rudisha _the iliyoundwa na majengo haya kwa pamoja_.Maelezo ya kijiometri ya kila jengo yametolewa katika safu majengo ambapo majengoi lefti, righti, heighti: lefti ni kiratibu cha x cha ukingo wa kushoto wa jengo ith. righti ni kiratibu cha x cha ukingo wa kulia wa jengo la ith. heighti ni urefu wa jengo ith.Unaweza kudhani kuwa majengo yote ni mistatili kamili iliyowekwa kwenye uso tambarare kabisa kwa urefu 0.Njia ya anga inapaswa kuwakilishwa kama orodha ya pointi muhimu zilizopangwa kulingana na x-coordinate zao katika muundo x1,y1,x2,y2,.... Kila sehemu kuu ni ncha ya kushoto ya baadhi ya sehemu ya mlalo kwenye anga isipokuwa sehemu ya mwisho kwenye orodha, ambayo kila wakati huwa na y-coordinate 0 na hutumika kuashiria kusitishwa kwa anga ambapo jengo la kulia kabisa linaishia. Sehemu yoyote kati ya jengo la kushoto kabisa na kulia kabisa inapaswa kuwa sehemu ya mtaro wa anga.Kumbuka: Lazima kusiwe na mistari mlalo mfululizo yenye urefu sawa katika anga ya pato. Kwa mfano, ...,2 3,4 5,7 5,11 5,12 7,... haikubaliki; mistari mitatu ya urefu wa 5 inapaswa kuunganishwa kuwa moja katika matokeo ya mwisho kama vile: ...,2 3,4 5,12 7,...Mfano wa 1:Ingizo: majengo 2,9,10,3,7,15,5,12,12,15,20,10, 19,24,8Pato: 2,10,3,15,7,12,12,0,15,10, 20,8,24,0Maelezo:Kielelezo A kinaonyesha majengo ya pembejeo.Kielelezo B kinaonyesha hali ya anga inayoundwa na majengo hayo. Alama nyekundu katika mchoro B zinawakilisha alama muhimu katika orodha ya matokeo.Mfano wa 2:Ingizo: majengo 0,2,3,2,5,3Pato: 0,3,5,0Vikwazo: 1 majengo.urefu 104 0 lefti righti 231 - 1 1 urefu 231 - 1 majengo yamepangwa kwa lefti katika mpangilio usiopungua.  <response>: chatukutoka kwa vyombo vilivyopangwa ingiza SortedListdef getSkylinemajengo: pointi kwa l, r, h katika majengo: pointi.ongezal, -h pointi.ongeza r, h pointi.panga urefu Orodha Iliyopangwa0 iliyopita 0 anga kwa x, h kwa alama: ikiwa h 0: urefu.ongeza-h kwingine: urefu.ondoah urefu urefu-1 ikiwa cur ! prev: skyline.appendx, cur prev cur kurudi angamaelezoAlgorithm huanza kwa kurudia kupitia majengo yote yaliyotolewa na kuunda orodha ya viwianishi vya x vilivyooanishwa na urefu wa majengo, ambapo pointi za kushoto zimepuuzwa. Kisha tunapanga orodha ya alama kwa x-coordinate. Zaidi ya hayo, tunaunda pia seti nyingi zilizopangwa CTreeSet JavaSortedList PythonSortedSet JavaScript ya urefu wa jengo, iliyoanzishwa kwa urefu mmoja 0.Ifuatayo, tunarudia kupitia pointi zilizopangwa. Ikiwa urefu ni hasi, maana yake ni hatua ya kushoto ya jengo, tunaongeza thamani kamili ya urefu kwa urefu uliowekwa. Ikiwa urefu ni chanya, maana yake ni hatua sahihi ya jengo, tunaondoa urefu kutoka kwa urefu uliowekwa.Katika kila marudio, tunalinganisha urefu wa juu wa sasa na urefu wa juu uliopita. Ikiwa urefu wa juu wa sasa ni tofauti na urefu wa juu zaidi wa hapo awali, inamaanisha kuwa tumefikia hatua muhimu katika anga, kwa hivyo tunaongeza kiratibu hiki cha x na urefu wa juu wa sasa kwenye orodha ya matokeo ya anga.Kanuni hii inahakikisha kwamba tunapokea orodha iliyopangwa ya pointi muhimu katika anga, bila mistari mlalo mfululizo ya urefu sawa. 