Kolejka górska (Roller Coaster Railroad)
Transkrypt
Kolejka górska (Roller Coaster Railroad)
InternationalOlympiadinInformatics2016 12-19thAugust2016 Kazan,Russia day1_2 railroad Country:POL Kolejkagórska(RollerCoasterRailroad) Annapracujewparkurozrywkiizajmujesiębudowąnowejkolejkigórskiej. Zaprojektowałajuż n specjalnychsekcji(dlawygodyponumerowanychod 0 do n − 1 ),którezmieniająprędkośćwagonikówkolejki:sątogórki,dolinkiiwiele innych.Terazmusizaproponowaćostatecznykształtkolejki,używającwszystkich zaprojektowanychsekcji.Wtymzadaniudlauproszczeniazakładamy,żedługość samejkolejkiwynosi0. Dlakażdego i pomiędzy 0 a n − 1 włącznie,specjalnasekcja i manastępujące właściwości: kiedykolejkawjeżdżadodanejsekcji,niemożeprzekraczaćustalonegolimitu prędkości:prędkośćwagonikówmusiwynosićconajwyżej si km/h(kilometrów nagodzinę), kiedykolejkaopuszczasekcję,jejprędkośćwynosidokładnie ti km/h, niezależnieodprędkości,zjakąkolejkawjechaładotejsekcji. Ostatecznyprojektkolejkipowinienzawieraćkażdąz n jużzaprojektowanychsekcji. Każdejsekcjinależyużyćdokładnieraz.Ponadtopomiędzykażdymidwiema sąsiadującymisekcjamimożnawybudowaćtory.Annawybierakolejność n sekcji,a następniedecydujeonaodługościposzczególnychtorów.Długośćtorówjestmierzona wmetrachimożebyćrównadowolnejnieujemnejliczbiecałkowitej(wszczególności możebyćto0). Każdymetrtorówpomiędzyspecjalnymisekcjamispowalniakolejkęo1km/h.Na początkutrasykolejkawjeżdżadopierwszejspecjalnejsekcjizprędkością1km/h. Ostatecznyprojektmusispełniaćnastępującewarunki: wchwiliwjeżdżaniadospecjalnejsekcjikolejkaniemożeprzekraczaćlimitu prędkości; prędkośćkolejkimusibyćdodatniawkażdymmomencietrasy. WewszystkichpodzadaniachoprócztrzeciegoTwoimzadaniemjestznaleźćkolejność n specjalnychsekcjiidobraćdługościtorówpomiędzynimi,takabycałkowita długośćtorówbyłajaknajmniejsza.Wtrzecimpodzadaniumusiszjedyniesprawdzić, czyistniejeprawidłowyprojektkolejki,wktórymwszystkietorymajądługość0. Szczegółyimplementacji Powinieneśzaimplementowaćnastępującąfunkcję(metodę): int64pla n_ro lle r_co a ste r(int[]s,int[]t) 1/3 s:tablicadługości n opisującamaksymalneprędkościwejściadosekcji. t:tablicadługości n opisującaprędkościwyjściazsekcji. Wewszystkichpodzadaniachpozatrzecimfunkcjapowinnazwracać minimalnąsumarycznądługośćwszystkichtorówpomiędzyspecjalnymi sekcjami.Natomiastwtrzecimpodzadaniufunkcjapowinnazwracać 0 , jeżeliistniejepoprawnyprojektkolejki,wktórymwszystkietorypomiędzy sekcjamimajądługośćzero,natomiastdowolnądodatniąliczbęcałkowitą, jeżelitakiprojektnieistnieje. WjęzykuCsygnaturafunkcjijestminimalnieinna: int64pla n_ro lle r_co a ste r(intn,int[]s,int[]t) n:rozmiartablicsorazt(tj.liczbaspecjalnychsekcji), pozostałeparametrysątakiesamejakpowyżej. Przykład int64pla n_ro lle r_co a ste r([1,4,5,6],[7,3,8,6]) Wtymprzykładziemamyczteryspecjalnesekcje.Najlepszymmożliwym rozwiązaniemjestwybudowanieichwkolejności 0, 3, 1, 2 ipołączenieichtoramio długościach,odpowiednio, 1, 2, 0 .Kolejkawtedyporuszasięnastępująco: Początkowaprędkośćkolejkiwynosi 1 km/h. Kolejkarozpoczynatrasę,wjeżdżającdospecjalnejsekcjinr 0 . Kolejkaopuszczasekcję 0 zprędkością 7 km/h. Następniekolejkawjeżdżanatoryodługości 1 m.Poichprzejechaniuma prędkość 6 km/h. Kolejkawjeżdżadospecjalnejsekcjinr 3 zprędkością 6 km/hiopuszczająztą samąprędkością. Poopuszczeniusekcji 3 kolejkajedzieprzez 2 mtorów.Prędkośćmalejedo 4 km/h. Kolejkawjeżdżadospecjalnejsekcjinr 1 zprędkością 4 km/hiopuszczająz prędkością 3 km/h. Natychmiastpoopuszczeniusekcjispecjalnejnr 1 kolejkawjeżdżadosekcjinr 2. Kolejkawyjeżdżazsekcjinr 2 .Ostatecznaprędkośćkolejkiwynosi 8 km/h. Funkcjapowinnazwrócićsumarycznądługośćtorówpomiędzyspecjalnymisekcjami: 1+2+0 = 3. Podzadania Wewszystkichpodzadaniach 1 ≤ si 1. (11punktów): 2 ≤ n ≤ 8, 2. (23punkty): 2 ≤ n ≤ 16 , ≤ 109 oraz 1 ≤ ti ≤ 109 . 2/3 3. (30punktów): 2 ≤ n ≤ 200 000 .WtympodzadaniuTwójprogrammusijedynie sprawdzić,czywynikiemjestzero,czyteżnie.Jeżeliwynikiemniejestzero, każdadodatnialiczbacałkowitajestuznawanazapoprawną. 4. (36punktów): 2 ≤ n ≤ 200 000 . Przykładowyprogramsprawdzający Przykładowyprogramsprawdzającywczytujedanewnastępującymformacie: wiersz1:liczbacałkowita n , wiersz 2 + i ,dla i pomiędzy 0 i n − 1 :liczbycałkowite si i ti . 3/3