.campion
conectare | înregistrare | căutare
Pagina principală » Probleme » trmv

ultima problemă
grupă: mică
sursă: OMI 2016
ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
 .campion
trmv


Timp maxim de execuţie/test:
0.7 secunde
Memorie totala disponibilă/stivă:
32 MB/1 MB

Concursul Interjudeţean Info-Oltenia 2010

Reţeaua de tramvaie din Bucureşti este formată din N staţii numerotate distinct de la 1 la N. O rută este formată dintr-o succesiune de staţii. Există T rute pe care circulă fără întreruperi un număr nelimitat de tramvaie la interval de 1 minut. Pe orice rută tramvaiele circulă în ambele direcţii.
Domnişoara Andreea este din Timişoara. Ea tocmai a ajuns în Bucureşti şi se află în staţia S. Andreea are o listă de P destinaţii, iar pentru fiecare destinaţie Di (0 < i ≤ P) ar vrea să ştie care este timpul minim în care poate ajunge de la S la Di folosind tramvaiele ca mijloace de transport. Ea poate coborî în oricare staţie de pe ruta tramvaiului în care se află şi se poate urca în oricare alt tramvai care trece prin staţia respectivă. Deoarece tramvaiele vin la intervale atât de scurte, la fiecare minut va fi un tramvai în staţie, deci vom considera că o astfel de transbordare se realizează atât de repede încât putem neglija timpul necesar ei, cât şi timpul de staţionare a tramvaielor. Dar pentru că Bucureştiul e cam mare şi Andreea nu prea se descurcă, vă cere ajutorul.

Cerinţă

Determinaţi timpii minimi necesari pentru a ajunge din staţia S la fiecare destinaţie Di (0 < i ≤ P).

Date de intrare

Pe prima linie din fişierul trmv.in se găsesc 4 numere naturale N T S P cu semnificaţia din enunţ. Următoarele T linii descriu rutele de tramvai, câte o rută pe o linie. O linie care descrie o rută conţine un număr natural L urmat de 2L-1 numere naturale k1, t1, k2, t2,…,kL-1, tL-1, kL. Fiecare triplet (ki, ti, ki+1) 1≤i<L indică faptul că pe ruta descrisă tramvaiele vor parcurge distanţa dintre staţiile ki şi ki+1 în ti minute. Nu uitaţi că pe orice rută tramvaiele circulă în ambele direcţii (atât de la k1 la kL trecând în ordine prin k2, k3,...,kL-1 cât şi de la kL la k1 trecând prin kL-1,kL-2,...,k2 în această ordine). Ultima linie din fişier conţine P numere naturale cuprinse între 1 şi N reprezentând cele P destinaţii pentru care va trebui să calculaţi timpul minim. Valorile scrise pe aceeaşi linie sunt separate prin spaţii.

Date de ieşire

Fişierul de ieşire trmv.out va conţine o singură linie pe care se vor afişa P numere întregi separate prin câte un singur spaţiu reprezentând timpul minim determinat pentru fiecare destinaţie, în ordinea din fişierul de intrare. Pentru destinaţiile la care nu se poate ajunge se va afişa valoarea -1.

Restricţii

  • 1 ≤ P ≤ N ≤ 1 000 000
  • 1 ≤ T, L ≤ 1000
  • 1 ≤ ti < 16
  • Pentru 30% din punctaj toţi timpii vor fi de 1 minut
  • Fiecare rută de tramvai are propria linie atât pe un sens cât şi pe celălalt, astfel că nu există riscul ca două tramvaie să se ciocnească.

Exemple

trmv.in trmv.out Explicaţie
7 5 1 3
3 1 2 2 3 3
2 3 2 4
3 3 1 4 1 2
2 7 3 6
3 1 7 7 2 3
1 6 5
0 9 -1

Andreea este deja în staţia 1, deci timpul minim până la această staţie este 0. Timpul minim până la staţia 6 se obtine mergand cu tramvaiul pe prima rută de la 1 până la 2, apoi pe ruta 3 de la 2 până la 3, trecând prin 4, după care se va folosi ruta 5 între 3 şi 7, iar în final ruta 4 între 7 şi 6. Timpul total este de 2+1+1+2+3=9 minute. Nu există nicio modalitate de a ajunge în staţia 5, deci ultimul număr afişat este -1.


stud. Duţă Vlad
Râmnicu Vâlcea
vlad90vl@yahoo.com
propunător: Prof. Emanuela Cerchez
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la .campion 2009: efort, muzeu, bal, seti, basm, dansatori, smith, timer, secvsir, vot, cetati, reziduu, biliard, prefix1, accesibil, dp, jocv, placa, palc, prod3, predecesor, standard, cantor, nkbiti, nori, triti, kperms, sotron1, impozit, tablite, fazan, lanturi, secvpar, tom, joker, matriosca, asociativ, lego, medalii, permutari, cfr, treegame, scanduri, site, fotbal, links, kbiti, segm, album, iepurasi, jucarii, m4, bradut, colorare, greutati, concat, graphgame, ic, echilibru, brazi, mat, cubinvers, mobil, distsir, parbit
De acelaşi autor: album, iepurasi, m4, bradut, xmoto, robotel
Despre graf: gropi, tgv, matrice2, miniasm, picnic, mere, circuit, soldati, arce, conflicte, desen, robot, furtuna, net, cuvinte, excursie, cadere, pioni, reinvent, kreg, flood, croco, johnie, matrice, arthur, kimberley, ro, sol, caravane, bete, honest, police, pcod, zmeu, auto2, grazing, datorii, trafic, sponsori, monede1, apm, bile1, caini, masina1, bomboane, turn1, shgraf, paintball, program1, tgraf, kgb, algola, felinar, joc6, tric, homeless, promo, turism, casute, joc10, prieteni1, traseu, zapezi, litoral, lover, trip, garaj, ziduri, tv, pact, echipe1, vitale, spion, trasee, bcolor, scara2, lant, ab3, soc, team, gard, rsp, graf, mexc, dep, albinuta1, atac2, cabane, drumuri, tj, grade, jungla, lanterna, magic5, coment, urgenta, fazan, lanturi, cfr, site, traseu1, graphgame, minuni, telefon, ubergraf, carray, pestera, chei, arbgraf, war, fluviu, drumuri1, entries, ubuntzei, pack, fotbal1, pamant, dag, razboi, benzina2, wg, neconex, asfalt1, kubus2, module, progresii, dfs, prieteni3, megascoala, grafxy, dineu, vot1, biperm, drumuri2, nrgraf, cristal, cartite, copaci3, dragoni, nuclee
Despre drum minim: miniasm, robot, furtuna, excursie, arthur, bete, zmeu, trafic, masina1, bomboane, traseu, litoral, lover, trip, scara2, team, gard, pitici1, base3, coach, lanturi, pestera, fluviu, ubuntzei, razboi, benzina2, kubus2, megascoala, dragoni
surse trimise | ajutor