#2052
curiosity
Misiunea robotului Curiosity este de-a trimite imagini și informații către satelitul plasat pe orbita planetei Marte. Zona de explorare a robotului este de-a lungul unei axe de coordonate Ox
. Robotul este înzestrat cu o baterie solară de capacitate energetică maximă C
și consumă pentru fiecare unitate de drum parcurs o unitate de energie. Coordonata punctului de plecare al incursiunii robotului (raportată la origine x=0
) este Xs
, iar punctul unde este finalizat studiul are coordonata Xf
.
Totodată, cercetătorii au stabilit N
puncte ce fac posibilă încărcarea bateriilor robotului, numerotate de la 1
la N
. În funcție de intensitatea luminii solare primite, reflectată în durata de încărcare a bateriei, punctele de încărcare sunt de trei tipuri: tipul 1
–intensitate minimă/timp de încărcare mare, tipul 2
–intensitate medie/timp de încărcare mediu, tipul 3
–intensitate maximă/timp de încărcare scurt. Altfel, fiecare punct de încărcare i
este descris prin perechea t[i] x[i]
, adică tipul de încărcare, respectiv poziția acestuia pe axă. În orice punct de încărcare robotul poate decide dacă încarcă sau nu bateria, cu unități de energie, nu mai mult decât capacitatea maximă. Robotul se poate deplasa dintr-un punct atât în stânga cât și în dreapta pe axă.
Pentru a scurta durata parcurgerii distanței către punctul final se dorește determinarea unei strategi optime a opririlor pentru încărcarea bateriilor, astfel încât cantitatea totală de energie încărcată în puncte de tipul 1
să fie minimă. În cazul în care sunt mai multe strategii de oprire pentru care cantitatea totală de energie încărcată în puncte de tipul 1
este minimă, atunci se va alege strategia pentru care cantitatea totală de energie încărcată în puncte de tipul 2
să fie minimă.
Dacă se cunosc Xs
, Xf
, C
, precum și descrierea celor N
puncte de încărcare să se determine o strategie de deplasare între coordonatele Xs
și Xf
, optimă din punct de vedere al timpului necesar încărcării bateriilor.
Lot Covasna 2017
Problema | curiosity | Operații I/O |
curiosity.in /curiosity.out
|
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 128 MB
/
Stivă 8 MB
|
Id soluție | #54196638 | Utilizator | |
Fișier | curiosity.cpp | Dimensiune | 983 B |
Data încărcării | 21 Noiembrie 2024, 20:32 | Scor / rezultat | 100 puncte |
curiosity.cpp: In function 'int main()': curiosity.cpp:12:37: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("curiosity.in", "r", stdin); ^ curiosity.cpp:13:38: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("curiosity.out","w", stdout); ^ curiosity.cpp:15:37: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d%d%d%d", &Xs, &Xf, &C, &n); ^ curiosity.cpp:20:24: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d%d", &t, &x); ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
0 | 0 secunde | OK. | 5 | 5 | ||
1 | 0 secunde | OK. | 5 | 5 | ||
2 | 0 secunde | OK. | 5 | 5 | ||
3 | 0 secunde | OK. | 5 | 5 | ||
4 | 0 secunde | OK. | 5 | 5 | ||
5 | 0 secunde | OK. | 5 | 5 | ||
6 | 0 secunde | OK. | 5 | 5 | ||
7 | 0 secunde | OK. | 5 | 5 | ||
8 | 0 secunde | OK. | 5 | 5 | ||
9 | 0 secunde | OK. | 5 | 5 | ||
10 | 0.008 secunde | OK. | 5 | 5 | ||
11 | 0.012 secunde | OK. | 5 | 5 | ||
12 | 0.012 secunde | OK. | 5 | 5 | ||
13 | 0.016 secunde | OK. | 5 | 5 | ||
14 | 0.016 secunde | OK. | 5 | 5 | ||
15 | 0.016 secunde | OK. | 5 | 5 | ||
16 | 0.008 secunde | OK. | 5 | 5 | ||
17 | 0.016 secunde | OK. | 5 | 5 | ||
18 | 0.016 secunde | OK. | 5 | 5 | ||
19 | 0.016 secunde | OK. | 5 | 5 | ||
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema curiosity 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ă.