Feladat: S.80 Korcsoport: - Nehézségi fok: -
Füzet: 2013/április, 231 - 232. oldal  PDF  |  MathML 

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.

Gombóc Artúr sokat jár barátaihoz egy N lakosú városban. Az utcák egyirányúak a városban. Gombóc Artúr nem szeret sokat gyalogolni, így azon töprengett, hogy hány olyan utca van és melyek azok, amiken végigmehet úgy, hogy saját lakásától az egyik barátjához (N-1 barátja van, hiszen mindenki a barátja) sétál el az egyik legrövidebb úton. Miután ezen gondolkozott egy keveset, úgy döntött, ideje valami nehezebb munkába fogni, és a következő kérdést tette fel: ,,Hányféleképpen juthatok el a lakásomból az egyes barátaimhoz valamelyik legrövidebb úton?''
A program olvassa be a standard input első sorából N-et és M-et (N,M1000000): a lakások és az utcák számát, majd a következő M sorból a ki, vi, si szóközzel elválasztott egészeket: azaz a ki lakás kezdőpontú, vi lakás végpontú, si hosszú utcát. Gombóc Artúr lakása az 1. Írjuk a standard output első sorába az a egészet, ahol a db utca a válasz az első kérdésre, majd a következő sorba az a db utcát rendezve (a bemeneti állományban elfoglalt sorszámukkal azonosítva), növekvő sorrendben, szóközzel elválasztva. Az utolsó sorba pedig a második kérdésre válaszként minden barátjára ki kell írni, hogy hányféleképpen lehet oda valamely legrövidebb úton eljutni, illetve ennek a számnak az 1 000 007-es maradékát.

 
Példa bemenet:Példa kimenet:7 1071 2 21 2 3 4 5 8 101 3 31 1 1 2 1 22 4 12 5 23 5 15 1 44 3 53 6 16 7 35 7 2
 

Pontozás és korlátok: 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 az 1 mp futásidőkorláton belül. Kapható részpontszám a 9 pontból, ha a program csak kisebb tesztesetekre tud lefutni időben. A programra nem jár pont, ha az első részfeladatra a bemeneteknek legalább 20%-ánál nem ad helyes kimenetet.
Beküldendő egy tömörített s80.zip állományban a program forráskódja (s80.pas, s80.cpp, ...) az .exe és más, a fordító által generált állományok nélkül, valamint a program rövid dokumentációja (s80.txt, s80.pdf, ...), amely a fentieken túl megadja, hogy a forrás mely fejlesztői környezetben fordítható.