#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 | #49793867 | Utilizator | |
Fișier | scara1.cpp | Dimensiune | 2.16 KB |
Data încărcării | 14 Martie 2024, 23:55 | Scor / rezultat | Eroare de compilare |
scara1.cpp:4:7: error: 'nmax' does not name a type const nmax=121; ^ scara1.cpp:5:20: error: 'nmax' was not declared in this scope unsigned long cost[nmax+1][nmax+1]; ^ scara1.cpp:5:28: error: 'nmax' was not declared in this scope unsigned long cost[nmax+1][nmax+1]; ^ scara1.cpp:6:17: error: 'nmax' was not declared in this scope unsigned long c[nmax+1],pd[nmax+1],d[nmax+1],min; ^ scara1.cpp:6:28: error: 'nmax' was not declared in this scope unsigned long c[nmax+1],pd[nmax+1],d[nmax+1],min; ^ scara1.cpp:6:38: error: 'nmax' was not declared in this scope unsigned long c[nmax+1],pd[nmax+1],d[nmax+1],min; ^ scara1.cpp:7:9: error: 'nmax' was not declared in this scope int eng[nmax+1]; ^ scara1.cpp:9:11: error: '::main' must return 'int' void main() ^ scara1.cpp: In function 'int main()': scara1.cpp:10:2: error: 'ifstream' was not declared in this scope {ifstream fi("scara.in"); ^ scara1.cpp:10:2: note: suggested alternative: In file included from /usr/include/c++/4.8/ios:38:0, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from scara1.cpp:3: /usr/include/c++/4.8/iosfwd:157:34: note: 'std::ifstream' typedef basic_ifstream<char> ifstream; ^ scara1.cpp:10:11: error: expected ';' before 'fi' {ifstream fi("scara.in"); ^ scara1.cpp:11:2: error: 'ofstream' was not declared in this scope ofstream fo("scara.out"); ^ scara1.cpp:11:2: note: suggested alternative: In file included from /usr/include/c++/4.8/ios:38:0, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from scara1.cpp:3: /usr/include/c++/4.8/iosfwd:160:34: note: 'std::ofstream' typedef basic_ofstream<char> ofstream; ^ scara1.cpp:11:11: error: expected ';' before 'fo' ofstream fo("scara.out"); ^ scara1.cpp:14:2: error: 'fi' was not declared in this scope fi>>n; ^ scara1.cpp:17:2: error: 'cost' was not declared in this scope cost[i][j]=MAXLONG; ^ scara1.cpp:17:13: error: 'MAXLONG' was not declared in this scope cost[i][j]=MAXLONG; ^ scara1.cpp:20:2: error: 'cost' was not declared in this scope cost[0][1]=999000; ^ scara1.cpp:38:6: error: 'eng' was not declared in this scope eng[p]=y; ^ scara1.cpp:41:8: error: 'eng' was not declared in this scope if (eng[i]!=0) ^ scara1.cpp:64:5: error: 'c' was not declared in this scope { c[i]=1; ^ scara1.cpp:65:2: error: 'd' was not declared in this scope d[i]=cost[0][i]; ^ scara1.cpp:67:2: error: 'pd' was not declared in this scope pd[1]=0; ^ scara1.cpp:69:9: error: 'MAXLONG' was not declared in this scope { min=MAXLONG; ^ scara1.cpp:78:6: error: 'c' was not declared in this scope if (c[i]!=0) ^ scara1.cpp:79:11: error: 'd' was not declared in this scope if (min>d[i]) ^ scara1.cpp:83:3: error: 'c' was not declared in this scope c[v]=0; ^ scara1.cpp:87:8: error: 'd' was not declared in this scope if (d[i]>d[v]+cost[v][i]) ^ scara1.cpp:110:3: error: 'fo' was not declared in this scope fo<<ct<<' '<<cst<<endl; ^ scara1.cpp:110:21: error: 'endl' was not declared in this scope fo<<ct<<' '<<cst<<endl; ^ scara1.cpp:110:21: note: suggested alternative: In file included from /usr/include/c++/4.8/istream:39:0, from /usr/include/c++/4.8/fstream:38, from scara1.cpp:3: /usr/include/c++/4.8/ostream:564:5: note: 'std::endl' endl(basic_ostream<_CharT, _Traits>& __os) ^ scara1.cpp:12:16: warning: unused variable 'cx' [-Wunused-variable] int n,k,j,i,x,cx,i1,nod1,nod2,y,p,v; ^
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ă.