#1340
Rucsac
Într-un magazin sunt n
obiecte; pentru fiecare se cunoaște greutatea G
și valoarea V
. Un hoț intră în magazin având un rucsac ce poate transporta o greutate maximă GMax
. El va fura anumite obiecte, sau porțiuni de obiecte, astfel încât suma greutăților obiectelor furate să nu depășească GMax
.
Să se stabilească câștigul maxim pe care îl poate obține hoțul. Câștigul este egal cu suma valorilor obiectelor furate. Câștigul adus de o fracțiune de obiect este direct proporțional cu greutatea fracțiunii.
Problema | Rucsac | Operații I/O | tastatură/ecran |
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #47921595 | Utilizator | |
Fișier | rucsac.cpp | Dimensiune | 544 B |
Data încărcării | 10 Ianuarie 2024, 10:22 | Scor / rezultat | Eroare de compilare |
rucsac.cpp:2:21: error: expected ']' before 'using' #define DimMax 1005 using namespace std; ^ rucsac.cpp:5:33: note: in expansion of macro 'DimMax' int n, Gmax; double c; obiect L[DimMax]; ^ rucsac.cpp:5:39: error: expected unqualified-id before ']' token int n, Gmax; double c; obiect L[DimMax]; ^ rucsac.cpp: In function 'int main()': rucsac.cpp:6:14: error: 'cin' was not declared in this scope int main() { cin>>n>>Gmax; for(int i = 1;i <= n;i++) { cin>>L[i].g>>L[i].v; L[i].raport = (double)(L[i].v / L[i].g); } sort(L + 1, L + n + 1, cresc); for(int i = 1;i <= n;i++) { if(Gmax - L[i].g < 0) { c = c + (double)((L[i].v * Gmax) / L[i].g); break; }else {c += L[i].v; Gmax -= L[i].g;} } cout<<(double)c; return 0; } ^ rucsac.cpp:6:14: note: suggested alternative: In file included from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:74:0, from rucsac.cpp:1: /usr/include/c++/4.8/iostream:60:18: note: 'std::cin' extern istream cin; /// Linked to standard input ^ rucsac.cpp:6:61: error: 'L' was not declared in this scope int main() { cin>>n>>Gmax; for(int i = 1;i <= n;i++) { cin>>L[i].g>>L[i].v; L[i].raport = (double)(L[i].v / L[i].g); } sort(L + 1, L + n + 1, cresc); for(int i = 1;i <= n;i++) { if(Gmax - L[i].g < 0) { c = c + (double)((L[i].v * Gmax) / L[i].g); break; }else {c += L[i].v; Gmax -= L[i].g;} } cout<<(double)c; return 0; } ^ rucsac.cpp:6:125: error: 'L' was not declared in this scope int main() { cin>>n>>Gmax; for(int i = 1;i <= n;i++) { cin>>L[i].g>>L[i].v; L[i].raport = (double)(L[i].v / L[i].g); } sort(L + 1, L + n + 1, cresc); for(int i = 1;i <= n;i++) { if(Gmax - L[i].g < 0) { c = c + (double)((L[i].v * Gmax) / L[i].g); break; }else {c += L[i].v; Gmax -= L[i].g;} } cout<<(double)c; return 0; } ^ rucsac.cpp:6:148: error: 'sort' was not declared in this scope int main() { cin>>n>>Gmax; for(int i = 1;i <= n;i++) { cin>>L[i].g>>L[i].v; L[i].raport = (double)(L[i].v / L[i].g); } sort(L + 1, L + n + 1, cresc); for(int i = 1;i <= n;i++) { if(Gmax - L[i].g < 0) { c = c + (double)((L[i].v * Gmax) / L[i].g); break; }else {c += L[i].v; Gmax -= L[i].g;} } cout<<(double)c; return 0; } ^ rucsac.cpp:6:148: note: suggested alternative: In file included from /usr/include/c++/4.8/algorithm:62:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:64, from rucsac.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:5483:5: note: 'std::sort' sort(_RandomAccessIterator __first, _RandomAccessIterator __last, ^ rucsac.cpp:6:293: error: 'cout' was not declared in this scope int main() { cin>>n>>Gmax; for(int i = 1;i <= n;i++) { cin>>L[i].g>>L[i].v; L[i].raport = (double)(L[i].v / L[i].g); } sort(L + 1, L + n + 1, cresc); for(int i = 1;i <= n;i++) { if(Gmax - L[i].g < 0) { c = c + (double)((L[i].v * Gmax) / L[i].g); break; }else {c += L[i].v; Gmax -= L[i].g;} } cout<<(double)c; return 0; } ^ rucsac.cpp:6:293: note: suggested alternative: In file included from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:74:0, from rucsac.cpp:1: /usr/include/c++/4.8/iostream:61:18: note: 'std::cout' extern ostream cout; /// Linked to standard output ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Rucsac 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ă.