Detalii evaluare #64921251

Rezumat problemă

Se dau 𝑁 procese care trebuie rulate pe un calculator. Există 𝑀 variabile care pot fi accesate de către aceste procese, numerotate de la 1 la 𝑀. Fiecare proces 𝑖 (unde 1 ≤ 𝑖 ≤ 𝑁) accesează un interval continuu de variabile [𝑙[𝑖], 𝑟[𝑖]], iar timpul necesar de execuție al procesului 𝑖 este 𝑡[𝑖].

Cât timp un proces rulează, acesta își salvează pe stiva de execuție toate variabilele necesare, iar la finalizarea lui le elimină de pe stivă. Două procese pot rula în paralel dacă și numai dacă nu au nicio variabilă în comun.

Sistemul de operare va planifica procesele astfel încât timpul total necesar executării tuturor să fie minim. O astfel
de planificare, care atinge timpul minim posibil, poartă numele de scenariu optim de execuție.

O variabilă este considerată critică dacă există cel puțin un scenariu optim de execuție în care aceasta petrece cel mai mult timp pe stivă dintre toate variabilele (într-un scenariu pot exista mai multe variabile critice simultan).

Dat fiind un număr 𝐶 ∈ {1, 2, 3}, reprezentând tipul cerinței:

Cerința 1. Să se determine timpul minim necesar pentru a rula toate cele 𝑁 procese date.

Cerința 2. Pentru fiecare proces 𝑖 (de la 1 la 𝑁), presupunem că îl eliminăm din sistem. Fie 𝑇[𝑖] timpul minim necesar pentru a rula restul de 𝑁 − 1 procese. Să se calculeze și să se afișeze suma tuturor valorilor 𝑇[𝑖], pentru 𝑖 de la 1 la 𝑁.

Cerința 3. Pentru fiecare proces 𝑖 (de la 1 la 𝑁), presupunem că îl eliminăm din sistem. Fie 𝑉[𝑖] numărul de variabile critice în contextul celorlalte 𝑁 − 1 procese, conform definiției anterioare. Să se calculeze și să se afișeze suma tuturor valorilor 𝑉[𝑖], pentru 𝑖 de la 1 la 𝑁.

ONI 2026, clasa a 10-a
Fișiere Candale Silviu (silviu) Alexandru Lorintz concurs

Detalii

Problema Calculator1 Operații I/O calculator1.in/calculator1.out
Limita timp 1.7 secunde Limita memorie Total: 512 MB / Stivă 64 MB
Id soluție #64921251 Utilizator ripper _2010 (Ripper)
Fișier calculator1.cpp Dimensiune 7.51 KB
Data încărcării 13 Iunie 2026, 20:38 Scor/rezultat 75 puncte

Evaluare

Mesaj compilare

calculator1.cpp: In function ‘int main()’:
calculator1.cpp:128:13: warning: unused variable ‘num_vals’ [-Wunused-variable]
  128 |         int num_vals = (int)sorted_sum.size();
      |             ^~~~~~~~

Rezultat evaluare

Test Timp Mesaj evaluare Scor posibil Scor obținut
1 0.002 secunde OK. 3 3
2 0.003 secunde OK. 3 3
3 0.002 secunde OK. 3 3
4 0.024 secunde OK. 3 3
5 0.022 secunde OK. 3 3
6 0.033 secunde OK. 3 3
7 0.001 secunde OK. 3 3
8 0.001 secunde OK. 3 3
9 0.001 secunde OK. 3 3
10 0.002 secunde OK. 3 3
11 0.001 secunde OK. 3 3
12 0.001 secunde OK. 3 3
13 0.04 secunde OK. 3 3
14 0.047 secunde OK. 3 3
15 0.047 secunde OK. 3 3
16 1.181 secunde OK. 3 3
17 0.837 secunde OK. 3 3
18 0.791 secunde OK. 3 3
19 0.782 secunde OK. 3 3
20 0.736 secunde Caught fatal signal 6 3 0
21 0.727 secunde Caught fatal signal 6 2 0
22 0.753 secunde Caught fatal signal 6 2 0
23 0.739 secunde Caught fatal signal 6 2 0
24 0.001 secunde OK. 2 2
25 0.001 secunde OK. 2 2
26 0.001 secunde OK. 2 2
27 0.002 secunde OK. 2 2
28 0.002 secunde OK. 2 2
29 0.002 secunde OK. 2 2
30 0.087 secunde OK. 2 2
31 0.08 secunde OK. 2 2
32 0.06 secunde OK. 2 2
33 0.923 secunde Caught fatal signal 6 2 0
34 0.967 secunde Caught fatal signal 6 2 0
35 0.905 secunde Caught fatal signal 6 2 0
36 0.971 secunde Caught fatal signal 6 2 0
37 0.734 secunde Caught fatal signal 6 2 0
38 0.731 secunde Caught fatal signal 6 2 0
39 0.732 secunde Caught fatal signal 6 2 0
40 0.739 secunde Caught fatal signal 6 2 0
Punctaj total 75

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

Du-te sus!