Detalii evaluare #53137398

Rezumat problemă

Orice număr natural mai mare decât 2 poate fi scris ca sumă de numere naturale nenule aflate în ordine strict crescătoare, astfel încât orice termen al sumei, cu excepția primului termen, este un multiplu al termenului precedent din sumă. De exemplu, 27=3+6+18, unde 6 este multiplul lui 3, iar 18 este multiplul lui 6. Cum se dorește o descompunere formată dintr-un număr cât mai mare de termeni, vom obține și descompuneri cu 4 termeni: 27=1+2+8+16, 27=1+2+4+20, 27=1+2+6+18. Dintre cele trei descompuneri cu 4 termeni, descompunerea 27=1+2+4+20 este minimă din punct de vedere lexicografic (1 și 2 sunt la fel în cele trei descompuneri, dar 4 < 6 și 4 < 8). Numărul 30 poate fi descompus 30=2+4+8+16. El are o descompunere tot de lungime 4, dar este mai mare din punct de vedere lexicografic decât oricare dintre descompunerile cu patru termeni ale lui 27 (2 > 1).

Pentru mai multe seturi de date formate din câte două numere naturale A și B, A ≤ B, se cere să se determine, pentru fiecare set una dintre următoarele cerințe:
1. numărul maxim de termeni în care pot fi descompuse numerele din intervalul [A,B] după regula descrisă în enunț;
2. numărul de numere din intervalul [A,B] care pot fi descompuse cu un număr maxim de termeni;
3. numărul din intervalul [A,B] care admite o descompunere cu un număr maxim de termeni, minimă din punct de vedere lexicografic.

ONI 2017, clasa a X-a

Detalii

Problema multisum Operații I/O multisum.in/multisum.out
Limita timp 0.4 secunde Limita memorie Total: 16 MB / Stivă 8 MB
Id soluție #53137398 Utilizator Peter Robert (ROBERT111)
Fișier multisum.cpp Dimensiune 2.05 KB
Data încărcării 18 Octombrie 2024, 17:22 Scor / rezultat 100 puncte

Evaluare


Mesaj compilare

multisum.cpp: In function 'int main()':
multisum.cpp:54:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                 if(dp[j].size()>max1)

                                 ^
multisum.cpp:59:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                 else if(dp[j].size()==max1)cnt++;

                                       ^
multisum.cpp:68:42: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                         if(dp[j].size()==max1)

                                          ^
multisum.cpp:73:27: warning: 'r' may be used uninitialized in this function [-Wmaybe-uninitialized]
                     cout<<r<<'\n';

                           ^

Rezultat evaluare

Test Timp Mesaj evaluare Scor posibil Scor obținut
0 0.24 secunde OK. 2 2
1 0.236 secunde OK. 2 2
2 0.236 secunde OK. 2 2
3 0.236 secunde OK. 2 2
4 0.236 secunde OK. 2 2
5 0.236 secunde OK. 4 4
6 0.236 secunde OK. 4 4
7 0.24 secunde OK. 4 4
8 0.256 secunde OK. 4 4
9 0.288 secunde OK. 4 4
10 0.232 secunde OK. 2 2
11 0.236 secunde OK. 2 2
12 0.236 secunde OK. 2 2
13 0.236 secunde OK. 2 2
14 0.236 secunde OK. 2 2
15 0.236 secunde OK. 4 4
16 0.248 secunde OK. 4 4
17 0.252 secunde OK. 4 4
18 0.276 secunde OK. 4 4
19 0.248 secunde OK. 4 4
20 0.244 secunde OK. 4 4
21 0.24 secunde OK. 4 4
22 0.236 secunde OK. 4 4
23 0.236 secunde OK. 4 4
24 0.236 secunde OK. 4 4
25 0.236 secunde OK. 4 4
26 0.236 secunde OK. 4 4
27 0.236 secunde OK. 4 4
28 0.236 secunde OK. 4 4
29 0.236 secunde OK. 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 multisum 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ă.