#3061
oracol
Gustavo, după ce a realizat că posedă abilitatea de a vedea în viitor, a decis că a venit momentul să treacă la următorul nivel și să-și valorifice capacitățile extrasenzoriale. Pentru a câștiga prestigiu și a deveni mai cunoscut în rândurile magicienilor profesioniști, acesta a ales să debuteze la Olimpiada Națională de Informatică prin prezicerea datelor de intrare pentru anumite probleme propuse în concurs. Primul client al lui Gustavo, Alfredo, ar dori să afle într-un mod inedit conținutul unui fișier de intrare aferent unei probleme de concurs, în care sunt scrise elementele unui șir p
de N
numere întregi. Pentru a face lucrurile mai interesante, Gustavo îi percepe o taxă de C(i,j)
bănuți pentru a-i divulga suma numerelor din șirul p
cu indici în intervalul [i, j]
, anume p
i
+ p
i+1
+ ... + p
j
. Dându-se valoarea lui N
și toate valorile C(i,j)
cu 1 ≤ i ≤ j ≤ N
, determinați costul total minim pe care trebuie să-l plătească Alfredo pentru a afla toate elementele șirului p
.
ONI 2019 clasele XI-XII
Problema | oracol | Operații I/O |
oracol.in /oracol.out
|
---|---|---|---|
Limita timp | 0.3 secunde | Limita memorie |
Total: 128 MB
/
Stivă 8 MB
|
Id soluție | #32264934 | Utilizator | |
Fișier | oracol.cpp | Dimensiune | 1.31 KB |
Data încărcării | 10 Noiembrie 2021, 21:56 | Scor / rezultat | 100 puncte |
oracol.cpp: In function 'int getroot(int)': oracol.cpp:29:17: warning: value computed is not used [-Wunused-value] root[x] == getroot(root[x]); ^ oracol.cpp: In function 'int main()': oracol.cpp:48:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i = 0;i < v.size() && cnt != n; ++i) ^ oracol.cpp: In function 'int getroot(int)': oracol.cpp:32:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ oracol.cpp: In function 'int main()': oracol.cpp:4:45: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] #define FILES freopen("oracol.in","r",stdin);\ ^ oracol.cpp:37:5: note: in expansion of macro 'FILES' FILES ^ oracol.cpp:5:47: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("oracol.out","w",stdout); ^ oracol.cpp:37:5: note: in expansion of macro 'FILES' FILES ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
0 | 0 secunde | OK. | 11 | 11 | ||
1 | 0 secunde | OK. | 10 | 10 | ||
2 | 0 secunde | OK. | 11 | 11 | ||
3 | 0.004 secunde | OK. | 16 | 16 | ||
4 | 0.028 secunde | OK. | 15 | 15 | ||
5 | 0.064 secunde | OK. | 15 | 15 | ||
6 | 0.084 secunde | OK. | 11 | 11 | ||
7 | 0.124 secunde | OK. | 11 | 11 | ||
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema oracol 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ă.