#2675
scara1
Domnul G are de urcat o scară cu n
trepte. În mod normal, la fiecare pas pe care îl face, el urcă o treaptă. Pe k
dintre aceste trepte se află câte o sticlă cu un număr oarecare de decilitri de apă, fie acesta x
. Dacă bea toată apa dintr-o astfel de sticlă, forța și mobilitatea lui G cresc, astfel încât, la următorul pas el poate urca până la x
trepte, după care, dacă nu bea din nou ceva, revine la “normal”. Sticlele cu apă nu costă nimic. Cantitatea de apă conținută de aceste sticle poate să difere de la o treaptă la alta.
Pe j
trepte se află câte o sticlă cu băutura energizantă. Şi pentru aceste sticle, cantitatea de băutură energizantă poate să difere de la o treaptă la alta. Să presupunem că într-una dintre aceste sticle avem y
decilitri de băutură energizantă. Dacă bea q
(q ≤ y
) decilitri dintr-o astfel de sticlă, la următorul pas G poate urca până la 2q
trepte, după care şi în acest caz, dacă nu bea din nou ceva, el revine la “normal”. Însă băutura energizantă costă: pentru o cantitate de q
decilitri consumaţi, G trebuie să plătească q
lei grei.
Pot exista trepte pe care nu se află nici un pahar, dar şi trepte pe care se află atât o sticlă cu apă cât şi una cu băutură energizantă. În astfel de situaţii, nu are rost ca G să bea ambele băuturi deoarece efectul lor nu se cumulează; el poate alege să bea una dintre cele două băuturi sau poate să nu bea nimic.
Determinaţi p
, numărul minim de paşi pe care trebuie să îi facă G pentru a urca scara, precum şi suma minimă pe care trebuie să o cheltuiască G pentru a urca scara în p
paşi.
OJI 2005, clasele XI-XII
Problema | scara1 | Operații I/O |
scara.in /scara.out
|
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #46827005 | Utilizator | |
Fișier | scara1.cpp | Dimensiune | 1.49 KB |
Data încărcării | 23 Noiembrie 2023, 20:49 | Scor / rezultat | Eroare de compilare |
scara1.cpp: In function 'int main()': scara1.cpp:36:11: error: no match for 'operator=' (operand types are '__gnu_cxx::__alloc_traits<std::allocator<Treapta> >::value_type {aka Treapta}' and '<brace-enclosed initializer list>') Scara[1] = { 1,0 }; ^ scara1.cpp:36:11: note: candidates are: scara1.cpp:9:8: note: Treapta& Treapta::operator=(const Treapta&) struct Treapta ^ scara1.cpp:9:8: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const Treapta&' scara1.cpp:9:8: note: Treapta& Treapta::operator=(Treapta&&) scara1.cpp:9:8: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'Treapta&&' scara1.cpp:16:18: warning: unused variable 'nr_trepte' [-Wunused-variable] int n, k, j, i, nr_trepte = 0, bani = 0; ^ scara1.cpp:16:33: warning: unused variable 'bani' [-Wunused-variable] int n, k, j, i, nr_trepte = 0, bani = 0; ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema scara1 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ă.