Jalan Pintas - International Olympiad in Informatics

advertisement
InternationalOlympiadinInformatics2016
12-19thAugust2016
Kazan,Russia
day1_3
shortcut
Country:IDN
JalanPintas
Pavelmemilikisebuahrelmainan.Relnyasangatsederhana.Terdapatsebuah
lintasanutamaberisi n stasiunyangsecaraberurutandinomoridari 0 sampai
n − 1 .Stasiun 0 dan n − 1 beradapadakeduaujungdarilintasanutama.Jarak
antarastasiun i dan i + 1 adalah li centimeter( 0 ≤ i < n − 1 ).
Selainlintasanutamamungkinjugaterdapatbeberapalintasansekunder.Setiap
lintasansekunderadalahsebuahlintasanreldiantarasebuahstasiunpadalintasan
utamadansebuahstasiunbaruyangtidakterletakpadalintasanutama.Panjangdari
lintasansekunderyangdimulaipadastasiun i adalah di centimeter.Kita
= 0 untukmenandakanbahwatidakterdapatjalursekunderyang
dimulaidaristasiun i .
menggunakan di
Pavelsekarangmerencanakanuntukmembangunsatujalanpintas:sebuahlintasan
ekspresdiantaraduastasiunberbedapadalintasanutama(mungkinsaja
bersebelahan).Lintasanekspresakanmemilikipanjangtepat c centimeter,tanpa
peduliduastasiunapayangakandihubungkannya.
Tiapsegmendarirel,termasuklintasanekspresyangbaru,dapatdigunakanpada
keduaarah.Jarakantaraduastasiunadalahpanjangruteterpendekyangberjalan
darisatustasiunkestasiunlainsepanjangrel.Diameterdariseluruhjaringanrel
adalahjarakmaksimumdarisemuapasangstasiun.Dengankatalain,jikadiameter
tersebutdinyatakandenganbilanganterkecil t ,makajarakantarasetiappasangan
stasiunyangadapalingbesaradalah t .
1/3
Pavelinginmembangunlintasanekspressedemikiansehinggadiameterdarihasil
jaringanadalahseminimalmungkin.
RincianImplementasi
Andaharusmengimplementasikanfungsi
int64find_sho rtcut(intn,int[]l,int[]d,intc)
n:banyaknyastasiunpadalintasanutama,
l:jarakantarastasiunpadalintasanutama(arraydenganpanjang n − 1 ),
d:panjanglintasansekunder(arraydenganpanjang n ),
c:panjanglintasanekspresbaru.
fungsiiniharusmengembalikandiameterterkecilyangmungkindarijaringan
relsetelahmenambahkanlintasanekspres.
Gunakanfiletemplateyangsudahdisediakanuntukimplementasirincidaribahasa
pemrogramanyangAndapakai.
Contoh
Contoh1
Untukjaringanrelditunjukandiatas,graderakanmelakukanpemanggilanfungsi
berikut:
find_sho rtcut(4,[10,20,20],[0,40,0,30],10)
Solusioptimaladalahmembangunlintasanekspresantarastasiun1dan3,seperti
ditunjukandibawah.
Diameterdarijaringanrelyangbaruadalah 80 centimeter,sehinggafungsiharus
mengembalikan 80 .
Contoh2
Gradermelakukanpemanggilanfungsiberikut:
2/3
find_sho rtcut(9,[10,10,10,10,10,10,10,10],
[20,0,30,0,0,40,0,40,0],30)
Solusioptimaladalahmenghubungkanstasiun 1 dan 6 ,yangmanadiameternya
adalah 110 .
Contoh3
Gradermelakukanpemanggilanfungsiberikut:
find_sho rtcut(4,[2,2,2],
[1,10,10,1],1)
Solusioptimaladalahmenghubungkanstasiun 2 dan 3 ,mengurangidiameter
menjadi 21 .
Contoh4
Gradermelakukanpemanggilanfungsiberikut:
find_sho rtcut(3,[1,1],
[1,1,1],3)
Menghubungkanduastasiunmanapundenganlintasanekspresdenganpanjang 2
tidakakanmemperbaikidiameterawaldarijaringanrelyaitu 4 .
Subtasks
Padasemuasubtask 2 ≤ n
1. (9poin) 2 ≤ n
≤ 1 000 000 , 1 ≤ li ≤ 109 , 0 ≤ di ≤ 109 , 1 ≤ c ≤ 109 .
≤ 10 ,
2. (14poin) 2 ≤ n ≤ 100 ,
3. (8poin) 2 ≤ n ≤ 250 ,
4. (7poin) 2 ≤ n ≤ 500 ,
5. (33poin) 2 ≤ n ≤ 3000 ,
6. (22poin) 2 ≤ n ≤ 100 000 ,
7. (4poin) 2 ≤ n ≤ 300 000 .
8. (3poin) 2 ≤ n ≤ 1 000 000 .
Grader
Gradermembacamasukandenganformatberikut:
baris1:bilanganinteger n dan c ,
baris2:bilanganinteger l0 , l1 , … , ln−2 ,
baris3:bilanganinteger d0 , d1 , … , dn−1 .
3/3
Download