#1136
Dragoni
Supărați că lansarea părții a treia a filmului lor preferat s-a amânat până în iunie 2018, Henry și Hetty s-au gândit la propriul scenariu pentru finalul trilogiei:
Într-o lume în care vikingii pot zbura cu dragonii există N
insule. Hiccup, șeful tribului de vikingi aflat pe insula 1
, știe M
rute directe de zbor bidirecționale între insule. Pentru fiecare j
intre 1
si M
, ruta j
unește insulele A
j
și B
j
și are lungime D
j
.
Pe fiecare insulă i
, (1 ≤ i ≤ n
) există dragoni din specia i
care pot zbura fără a se opri pentru odihnă o distanță maximă Dmax
i
. Cu alte cuvinte, dragonii de pe insula i
vor putea parcurge orice rută j
, (1 ≤ j ≤ m
) pentru care D
j
≤ Dmax
i
, indiferent de ce alte drumuri au făcut anterior.
Hiccup dorește să ajungă de pe insula 1
pe insula N
pentru a-l salva pe Toothless, dragonul lui. Pentru a ajunge acolo, el va lua inițial un dragon din specia 1
(de pe insula 1
). Apoi, dacă la un moment dat Hiccup se află pe o insula i
, (1 ≤ i ≤ n
) având cu el un dragon din specia t
, el poate:
i
pe o altă insulă x
cu dragonul pe care îl are, folosind o rută directă j
între insulele i
si x
, bineînțeles doar dacă D
j
≤ Dmax
t
.t
pe care îl are cu un dragon din specia i
aflat pe insula respectivă.Cerințe:
a. Să se determine distanța maxima Dmax
i
caracteristică unui dragon la care Hiccup poate ajunge fără a schimba dragonul pe care l-a luat inițial de pe insula 1
.
b. Să se determine distanța minimă pe care Hiccup trebuie să o parcurgă pentru a ajunge de pe insula 1
pe insula N
.
OJI 2015, Clasele XI-XII
Problema | Dragoni | Operații I/O |
dragoni.in /dragoni.out
|
---|---|---|---|
Limita timp | 1.5 secunde | Limita memorie |
Total: 32 MB
/
Stivă 8 MB
|
Id soluție | #49357625 | Utilizator | |
Fișier | dragoni.cpp | Dimensiune | 2.52 KB |
Data încărcării | 27 Februarie 2024, 15:24 | Scor / rezultat | 100 puncte |
dragoni.cpp: In function 'void dfs(int)': dragoni.cpp:38:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int i = 0; i < g[nod].size(); i++) ^ dragoni.cpp: In function 'void rezolvare_task2()': dragoni.cpp:62:41: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int i = 0; i < g[nod].size(); i++) ^ dragoni.cpp:68:21: warning: variable 'best_dragon_putere' set but not used [-Wunused-but-set-variable] int best_dragon_putere = putere_dragon; ^ dragoni.cpp:53:22: warning: unused variable 'pas' [-Wunused-variable] M[1][1] = 0; int pas = 1; ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0 secunde | OK. | 2 | 2 | ||
2 | 0 secunde | OK. | 2 | 2 | ||
3 | 0 secunde | OK. | 2 | 2 | ||
4 | 0 secunde | OK. | 2 | 2 | ||
5 | 0 secunde | OK. | 2 | 2 | ||
6 | 0 secunde | OK. | 2 | 2 | ||
7 | 0 secunde | OK. | 2 | 2 | ||
8 | 0 secunde | OK. | 2 | 2 | ||
9 | 0 secunde | OK. | 2 | 2 | ||
10 | 0 secunde | OK. | 2 | 2 | ||
11 | 0 secunde | OK. | 8 | 8 | ||
12 | 0 secunde | OK. | 8 | 8 | ||
13 | 0 secunde | OK. | 8 | 8 | ||
14 | 0.004 secunde | OK. | 8 | 8 | ||
15 | 0.012 secunde | OK. | 8 | 8 | ||
16 | 0.044 secunde | OK. | 8 | 8 | ||
17 | 0.08 secunde | OK. | 8 | 8 | ||
18 | 0.084 secunde | OK. | 8 | 8 | ||
19 | 0.092 secunde | OK. | 8 | 8 | ||
20 | 0.092 secunde | OK. | 8 | 8 | ||
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Dragoni face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.