Nu aveti permisiuni pentru a descarca fisierul grader_test9.ok
Diferente pentru problema/peapesimaitulburi intre reviziile #24 si #3
Nu exista diferente intre titluri.
Diferente intre continut:
== include(page="template/taskheader" task_id="peapesimaitulburi") ==
Dupa ce aucutreieratpeste mari si taripentru a gasisensul vietii, un grup de piratiajungeinapoi pe plaiurilemioriticedezamagitide nereusita lor. Ajunsi insatul unde au crescut, acestiaseducfiecarela caselelor pentruase odihnisia-sivarsaamarulintr-unpaharderom. La unmomentdat, in toiul noptii,armataregalase aude dindepartare.Speriati ca arputeafiprinsi, piratii nostri segandescca trebuiesaparaseascacat mai repedesatulsisa se refugieze. Stiindcaarputeadura foartemult pana sa isigaseascaun nou adapostsi cum fiecaredineiare nevoie de o anumitadozaderom (destul de mare am putea adauga)pentru a supravietui, acestiaisi dauseamacainaintede a seindreptaspre una dintre iesirile satului,fiecaredintreeitrebuiesaseopreascala una dintre caselecu rezerve de rom pentruase aproviziona.Fiind subinfluenta bauturiitraditionale,acestianu numaicanu maisuntin staresa isidea seamacareeste drumul optim pentru eicatreiesire,darnu maireusesc nici macarsadistingatoate drumuriledinsat saucat delungisuntacestea (se gandescchiarcaarputeaavea lungimi negative). Aflatiinadevaratpericol,piratiivacerajutorulsi,inschimb, va voroferi si vouao sticlade rom (ceea ce este fenomenal pentru ca se stieca piratiinusuntchiarasa dedarnici,mai alescand vinevorbadespre bautura lor preferata). Acestiavaoferaurmatoareleinformatiipentrua le putea da unraspunscat mai bun: numarul de casedin sat,numarulde drumuripecarepiratii aureusitsale distinga,drumurilepropriu-zisecare suntdetipul "locuinta sursa,locuintatarget, distanta", numarulde pirati, numarulde case de undeacestiasepot aproviziona,numaruldecasedin care se poateiesi din sat, indicii caselorundese aflapiratii, indicii caselor deundesepoateface aprovizionareasi indicii caselor de undese poateiesi.Piratiiasteapta in schimb sa lespuneti,pentru fiecaredintre ei, drumulminimastfelincatsa seaprovizionezesi apoisa ajungala una dintre iesiri. In cazulincaredrumulminimestemaimicde$-10^18^$ (numarul cel mai micpana la care stieunpiratsa numere),acestiavaroaga sa afisati "-INF" (fara ghilimele),iarin cazul in carepiratul nu areniciun drum valid,varoaga sa afisati "INF" (fara ghilimele).
Se da un graf orientat cu n noduri si m muchii si costuri pe muchii. Se mai dau 3 liste de noduri A, B si C. Pentru fiecare nod din lista A se cere costul minim cu care poate ajunge intr-un nod din lista C cu restrictia ca trebuie sa treaca mai intai printr-un nod din lista B. Daca se intra in ciclu infinit, se afiseaza "-INF", iar dca nu se poate ajunge, se afiseaza "INF". In cazul in care pentru un nod A se poate ajunge atat intr-un C, cat si intr-un ciclu negativ din care nu se mai poate ajunge ulterior intr-un C, se va alege drumul care ajunge la C. Cu alte cuvinte, un ciclu negativ se ia in calcul numai in cazul in care se poate ajunge la un C ulterior din acesta. De asemenea, daca dintr-un nod A nu se poate iesi, dar se poate ajunge intr-un ciclu negativ, raspunsul este INF, deoarece NU se poate iesi. Prioritate are iesirea, apoi costul :)
h2. Date de intrare
Fişierul de intrare $peapesimaitulburi.in$ contine pe primia linie numerele $n$ si $m$, reprezentand numarul de case si numarul de drumuri oferite de pirati. Urmatoarele $m$ linii contin fiecare cate un triplet de forma $x y d$ cu semnificatia ca exista drum de la casa $x$ la casa $y$ de distanta $d$. Urmatoarele sase linii contin numarul $p$, reprezentand numarul de pirati, $p$ numere separate prin cate un spatiu, reprezentand indicii caselor la care se afla fiecare pirat, numarul $a$, reprezentand numarul de case de unde acestia se pot aproviziona, $a$ numere separate prin cate un spatiu, reprezentand indicii acestor case, numarul $i$, reprezentand numarul de case de unde se poate iesi din sat, si $i$ numere separate prin cate un spatiu reprezentand indicii acestora.
Fişierul de intrare $peapesimaitulburi.in$ ... n m sursa destinatie cost (m astfel de perechi) cate_noduri_in_A A1 A2 A3... cate_noduri_in_B B1 B2 B3... cate_noduri_in_C C1 C2 C3...
h2. Date de ieşire
În fişierul de ieşire $peapesimaitulburi.out$ se vor afisa pe $p$ linii raspunsurile pentru fiecare pirat in parte. Linia $i$ va contine raspunsul pentru piratul $i$.
În fişierul de ieşire $peapesimaitulburi.out$ ... Ans1 Ans2 .... (pentrui fiecare nod A)
h2. Restricţii
* $1 ≤ n ≤ 100.000$ * $1 ≤ m ≤ 200.000$ * $1 ≤ x ≤ n$ * $1 ≤ y ≤ n$ * $-100.000 ≤ d ≤ 100.000$ * $1 ≤ p ≤ n$ * $1 ≤ a ≤ n$ * $1 ≤ i ≤ n$ * Toti indicii din input sunt valizi (cuprinsi in intervalul $[1, n]$). * Daca exista un drum de la casa $u$ la casa $v$ *NU* este garantat sa existe un drum si de la casa $v$ la casa $u$. * Se garanteaza ca *NU* exista drum de la nicio casa la ea insasi. * Se garanteaza ca *NU* exista mai mult de un drum direct intre oricare doua case. * Se garanteaza ca daca pentru un drum $(x, y, d)$ exista *mai mult* de $2500$ de perechi de case $(u, v)$ cu proprietatea ca se poate ajunge atat din casa $u$ in casa $v$ cat si din casa $v$ in casa $u$ trecand prin acel drum, deoarece asta inseamna ca sunt foarte multi pirati care il stiu, sansa ca acestia sa ii fi gresit lungimea este de $0%$. Cu alte cuvinte, lungimea acestui drum este un numar natural (nu neaparat strict pozitiv). * Vi se interzice sa incercati sa furati romul unui pirat. In caz contrar, sfarsitul ar putea fi tragic!
* $... ≤ ... ≤ ...$ 1 <= n <= 1e5 1 <= m <= 2e5 -1e5 <= cost <= 1e5 0 <= noduri A, noduri B, noduri C <= n Se garanteaza ca o muchie X Y poate avea cost negativ daca si numai daca numarul de perechi de noduri U V cu proprietatea ca se poate ajunge atat din U in V cat si din V in U este <= 2500
h2. Exemplu table(example). |_. peapesimaitulburi.in |_. peapesimaitulburi.out |
| $8 9$ $1 2 1$ $2 3 2$ $3 1 -3$ $2 4 6$ $4 5 -1$ $5 4 -2$ $3 6 -3$ $6 7 1$ $6 8 2$ $8$ $1 2 3 4 5 6 7 8$ $1$ $3$ $3$ $4 7 8$ | $-INF$ $-INF$ $-INF$ $INF$ $INF$ $INF$ $INF$ $INF$
| This is some text written on multiple lines. | This is another text written on multiple lines.
|
table(example). |_. peapesimaitulburi.in |_. peapesimaitulburi.out | | $8 9$ $1 2 1$ $2 3 2$ $3 1 -3$ $2 4 6$ $4 5 -1$ $5 4 -2$ $3 6 -3$ $6 7 1$ $6 8 2$ $8$ $1 2 3 4 5 6 7 8$ $1$ $6$ $3$ $4 7 8$ | $1$ $0$ $-2$ $INF$ $INF$ $1$ $INF$ $INF$ |
h3. Explicaţie ...
== include(page="template/taskfooter" task_id="peapesimaitulburi") ==
