Feladat: S.116 Korcsoport: - Nehézségi fok: -
Füzet: 2017/április, 231 - 232. oldal  PDF  |  MathML 
Témakör(ök): Nehezebb feladat, Programozás, algoritmusok

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

Egy ország úthálózata kétirányú, egyenes autópályákból áll, melyek egy-egy várospárt kötnek össze. Minden útnak ismerjük a két végpontját, illetve a megtételéhez szükséges időt. Az országban két város (A és B) gyors fejlődésnek indult, így az ország vezetői minimalizálni szeretnék a két város közötti út megtételének idejét. Sajnos földrajzi okokból nem tudnak újabb autópályákat építeni. Kifejlesztettek egy közlekedési eszközt, egyenes számára kiépített speciális pályán elhanyagolható idő alatt (0) juttatja el a rakományát, vagy utasait a pálya két végpontja között. Mivel ez az új jármű nagyon drága, csak egyetlen darabot tudnak belőle megépíteni. A jármű vonalát csak egy már meglévő autópályával párhuzamosan lehet kiépíteni.
Írjunk programot, ami segít az ország vezetőinek megmondani, hogy melyik két város közötti autópálya mellé építsék ki a kifejlesztett közlekedési eszköz vonalát, illetve megmondja, hogy mennyivel csökken az utazási idő A és B között. A városokat 1 és N közötti sorszámokkal azonosítjuk.
A standard bemenet első sora a városok N számát és az autópályák M számát, illetve A és B sorszámát tartalmazza. A következő M sor egy-egy autópályát ír le, vagyis három egész számot tartalmaz szóközzel elválasztva: a két végpont sorszámát (xi,yi), illetve az adott autópálya megtételéhez szükséges időt (zi-t) tartalmazza. Az A városból a B városba mindenképp el lehet jutni egy vagy több autópályán végighaladva. A standard kimenet első sorába írjuk ki, hogy maximum mennyivel csökkenthető az utazási idő A és B között, a második sorba pedig annak a két városnak sorszámát, amelyek között az új vonalat építeni kell.

 
Bemenet (a /  jel sortörést jelöl)Kimenet  5 7 1 2 / 1 3 2 / 1 4 4 / 3 4 3 / 3 2 10 / 4 2 20 / 2 5 1 / 5 4 25 / 3 2   
 

Magyarázat: az ábráról látszik, hogy a 3-as és 2-es pont közé építve a vonalat az utazási idő 7-ről 2-re csökken.

 
 

Korlátok: 2N100000, 1M1000000, 1ABN, 1xiyiN, 0zi10000. Az időlimit 1 mp, a memórialimit 256 MB. Az első két tesztesetben az előbbi korlátokon kívül teljesül, hogy M1000.
Pontozás: a programhoz mellékelt, a helyes megoldás elvét tömören, de érthetően leíró dokumentáció 1 pontot ér. A programra akkor kapható meg a további 9 pont, ha bármilyen hibátlan bemenetet képes megoldani a fenti korlátoknak megfelelően.
Beküldendő egy tömörített s116.zip állományban a program forráskódja (az .exe és más, a fordító által generált állományok nélkül), valamint a program rövid dokumentációja, amely leírja a megoldás menetét és megadja, hogy a forrás mely fejlesztői környezetben fordítható. Az utolsó két tesztesetre maximális pont csak akkor érhető el, ha a dokumentáció fent leírt bizonyítást tartalmazza.