Detalii evaluare #51674702

Rezumat problemă

#4628 Mugurel

Mugurel a decis să devină în sfârșit cel mai mare antreprenor din Imperiul Rațelor de Cauciuc. Astfel, el și-a deschis o afacere cu fructele sale preferate: portocale și banane.

Acesta primește planul recoltelor de fructe: timp de N zile, în fiecare zi Mugurel primește M grămezi de portocale și M grămezi de banane (alternativ), reprezentate prin numărul lor de kilograme.
Mugurel trebuie să împacheteze toate aceste fructe, însă producătorul său de cutii îi oferă două variante, din care poate alege doar una: fabricarea a K cutii pentru portocale și K cutii pentru banane (împachetare separată), sau fabricarea a K cutii mixte (împachetarea portocalelor și a bananelor împreună).

Însă, totul are un preț. Fie \(c_{port}\), \(c_{ban}\), \(c_{mixt}\) capacitățile cutiilor de portocale, banane respectiv mixte. Atunci, Mugurel va plăti \(A \; maci \cdot c_{port} + B \; maci \cdot c_{ban}\) sau \(C \; maci \cdot c_{mixt}\), în funcție de varianta de împachetare aleasă, unde \(A\), \(B\) și \(C\) vor fi prețuri oferite de producător. Mugurel va alege metoda de împachetare astfel încât suma de bani cheltuită să fie cât mai mică.

După ce plătește și primește cutiile, începe împachetarea. De fiecare dată când închide o cutie, o pune la finalul șirului de cutii deja închise (Mugurel se ocupă mai întâi de grămada de portocale, apoi de cea de banane). La finalul împachetării fructelor, el trebuie să împartă șirul de cutii în două șiruri consecutive, pe care le vom numi loturi.

Loturile vor fi trimise către cele două cetăți ale Imperiului, însă Mugurel nu vrea să pornească un război între cele două cetăți, așadar vrea să le împartă cu grijă. Numim discrepanță a unui lot diferența dintre cutia cu număr maxim de kilograme și cea cu număr minim. Împărțirea trebuie făcută astfel încât suma discrepanțelor celor două loturi să fie minimă, pentru împachetare.

Cu atâtea responsabilități pe cap, Mugurel vă roagă să-l ajutați cu afacerea.

Concursul Interjudeţean de Matematică şi Informatică Grigore Moisil, 2023, Clasa a IX-a

Detalii

Problema Mugurel Operații I/O mugurel.in/mugurel.out
Limita timp 0.7 secunde Limita memorie Total: 128 MB / Stivă 16 MB
Id soluție #51674702 Utilizator Constantin Gabriel (Gabriel1243)
Fișier mugurel.cpp Dimensiune 4.23 KB
Data încărcării 01 August 2024, 11:03 Scor / rezultat 0 puncte

Evaluare


Mesaj compilare

mugurel.cpp: In function 'std::vector<std::pair<int, char> > pack_mixed(const std::vector<int>&, const std::vector<int>&, int)':
mugurel.cpp:30:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while (i < oranges.size() && j < bananas.size()) {

                             ^
mugurel.cpp:30:51: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while (i < oranges.size() && j < bananas.size()) {

                                                   ^
mugurel.cpp:35:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         while (i < oranges.size() && j < bananas.size() && 

                                 ^
mugurel.cpp:35:55: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         while (i < oranges.size() && j < bananas.size() && 

                                                       ^
mugurel.cpp: In function 'int calculate_min_discrepancy(const std::vector<std::pair<int, char> >&)':
mugurel.cpp:58:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < boxes.size(); ++i) {

                                    ^
mugurel.cpp:62:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 1; i < boxes.size(); ++i) {

                                    ^
mugurel.cpp:63:13: warning: unused variable 'sum1' [-Wunused-variable]
         int sum1 = prefix_sums[i];

             ^
mugurel.cpp:64:13: warning: unused variable 'sum2' [-Wunused-variable]
         int sum2 = prefix_sums[boxes.size()] - prefix_sums[i];

             ^

Rezultat evaluare

Test Timp Mesaj evaluare Scor posibil Scor obținut
2 0 secunde Nu exista fisierul mugurel.out 1 0
3 0 secunde Nu exista fisierul mugurel.out 1 0
4 0 secunde Nu exista fisierul mugurel.out 1 0
5 0 secunde Nu exista fisierul mugurel.out 1 0
6 0 secunde Nu exista fisierul mugurel.out 1 0
7 0 secunde Nu exista fisierul mugurel.out 1 0
8 0 secunde Nu exista fisierul mugurel.out 1 0
9 0 secunde Nu exista fisierul mugurel.out 1 0
10 0 secunde Nu exista fisierul mugurel.out 1 0
11 0 secunde Nu exista fisierul mugurel.out 1 0
12 0 secunde Nu exista fisierul mugurel.out 3 0
13 0 secunde Nu exista fisierul mugurel.out 4 0
14 0 secunde Nu exista fisierul mugurel.out 4 0
15 0 secunde Nu exista fisierul mugurel.out 4 0
16 0 secunde Nu exista fisierul mugurel.out 3 0
17 0 secunde Nu exista fisierul mugurel.out 3 0
18 0 secunde Nu exista fisierul mugurel.out 3 0
19 0 secunde Nu exista fisierul mugurel.out 3 0
20 0 secunde Nu exista fisierul mugurel.out 3 0
21 0 secunde Nu exista fisierul mugurel.out 3 0
22 0 secunde Nu exista fisierul mugurel.out 3 0
23 0 secunde Nu exista fisierul mugurel.out 3 0
24 0 secunde Nu exista fisierul mugurel.out 3 0
25 0 secunde Nu exista fisierul mugurel.out 3 0
26 0 secunde Nu exista fisierul mugurel.out 3 0
27 0 secunde Nu exista fisierul mugurel.out 3 0
28 0 secunde Nu exista fisierul mugurel.out 3 0
29 0 secunde Nu exista fisierul mugurel.out 3 0
30 0 secunde Nu exista fisierul mugurel.out 3 0
31 0 secunde Nu exista fisierul mugurel.out 3 0
32 0 secunde Nu exista fisierul mugurel.out 3 0
33 0 secunde Nu exista fisierul mugurel.out 3 0
34 0 secunde Nu exista fisierul mugurel.out 3 0
35 0 secunde Nu exista fisierul mugurel.out 3 0
36 0 secunde Nu exista fisierul mugurel.out 3 0
37 0 secunde Nu exista fisierul mugurel.out 4 0
38 0 secunde Nu exista fisierul mugurel.out 4 0
39 0 secunde Nu exista fisierul mugurel.out 4 0
Punctaj total 0

Cum funcționează evaluarea?

www.pbinfo.ro permite evaluarea a două tipuri de probleme:

  • probleme la care rezolvarea presupune scrierea unui program complet
  • probleme la care rezolvarea presupune scrierea unei secvențe de program - câteva instrucțiuni, o listă de declarații, una sau mai multe funcții, etc.

Problema Mugurel face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:

  • Programul sursă este compilat folosind compilatorul corespunzător. Dacă în urma compilării se obțin erori sau avertismente, acestea sunt afișate în această pagină.
  • Dacă programul a fost compilat, executabilul obținut va fi rulat, furnizându-i-se unul sau mai multe seturi de date de intrare, în concordanță cu restricțiile specifice problemei. Pentru fiecare set de date se obține un anumit punctaj, în raport cu corectitudinea soluției tale.

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ă.