Detalii evaluare #50179438

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 #50179438 Utilizator Andrei Visalon (Prekzursil)
Fișier mugurel.cpp Dimensiune 4.10 KB
Data încărcării 30 Martie 2024, 06:05 Scor / rezultat 100 puncte

Evaluare


Mesaj compilare

mugurel.cpp: In function 'int main()':
mugurel.cpp:47:37: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   freopen("mugurel.in", "r" , stdin);

                                     ^
mugurel.cpp:48:39: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   freopen("mugurel.out", "w" , stdout);

                                       ^
mugurel.cpp:52:25: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d", &n, &m);

                         ^
mugurel.cpp:58:39: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d %d %d", &k, &a, &b, &c);

                                       ^
mugurel.cpp:70:30: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
       scanf("%d", &fst[i][j]);

                              ^
mugurel.cpp:78:30: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
       scanf("%d", &snd[i][j]);

                              ^

Rezultat evaluare

Test Timp Mesaj evaluare Scor posibil Scor obținut
2 0 secunde Raspuns corect 1 1
3 0.004 secunde Raspuns corect 1 1
4 0.02 secunde Raspuns corect 1 1
5 0.104 secunde Raspuns corect 1 1
6 0.272 secunde Raspuns corect 1 1
7 0 secunde Raspuns corect 1 1
8 0.004 secunde Raspuns corect 1 1
9 0.02 secunde Raspuns corect 1 1
10 0.104 secunde Raspuns corect 1 1
11 0.26 secunde Raspuns corect 1 1
12 0 secunde Raspuns corect 3 3
13 0.004 secunde Raspuns corect 4 4
14 0.036 secunde Raspuns corect 4 4
15 0.3 secunde Raspuns corect 4 4
16 0 secunde Raspuns corect 3 3
17 0 secunde Raspuns corect 3 3
18 0 secunde Raspuns corect 3 3
19 0 secunde Raspuns corect 3 3
20 0 secunde Raspuns corect 3 3
21 0 secunde Raspuns corect 3 3
22 0 secunde Raspuns corect 3 3
23 0 secunde Raspuns corect 3 3
24 0.02 secunde Raspuns corect 3 3
25 0.008 secunde Raspuns corect 3 3
26 0.012 secunde Raspuns corect 3 3
27 0.06 secunde Raspuns corect 3 3
28 0.176 secunde Raspuns corect 3 3
29 0.064 secunde Raspuns corect 3 3
30 0.024 secunde Raspuns corect 3 3
31 0.024 secunde Raspuns corect 3 3
32 0.036 secunde Raspuns corect 3 3
33 0.06 secunde Raspuns corect 3 3
34 0.08 secunde Raspuns corect 3 3
35 0.28 secunde Raspuns corect 3 3
36 0.196 secunde Raspuns corect 3 3
37 0.212 secunde Raspuns corect 4 4
38 0.036 secunde Raspuns corect 4 4
39 0.392 secunde Raspuns corect 4 4
Punctaj total 100

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