#680
ksplit
Se consideră un șir A
cu N
elemente întregi nenule. Numim secvență a șirului A
orice succesiune de elemente aflate pe poziții consecutive în șir: A
i
, A
i+1
, …, A
j
cu 1 ≤ i < j ≤ N
. Prin lungimea secvenței înțelegem numărul de elemente care o compun.
Pentru orice secvenţă A
i
, A
i+1
, …, A
j
, vom numi split-point un indice k
, i ≤ k < j
, care împarte secvența în două subsecvențe nevide: A
i
, A
i+1
, …, A
k
, respectiv A
k+1
, A
k+2
, …, A
j
.
Fie Dmax
valoarea absolută maximă a diferenței sumelor elementelor celor două subsecvențe separate de un split-point, luând în considerare toate secvenţele Ai,Ai+1,…,Aj
posibile şi fie Lmax
lungimea maximă a unei secvenţe caracterizată de valoarea Dmax
.
Cunoscând N
şi valorile elementelor şirului A
, să se determine Dmax
şi Lmax
.
Lot Juniori, Vaslui, 2014
Problema | ksplit | Operații I/O |
ksplit.in /ksplit.out
|
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 8 MB
/
Stivă 8 MB
|
Id soluție | #53400510 | Utilizator | |
Fișier | ksplit.cpp | Dimensiune | 2.17 KB |
Data încărcării | 28 Octombrie 2024, 14:45 | Scor / rezultat | 65 puncte |
ksplit.cpp: In function 'int main()': ksplit.cpp:18:108: warning: unused variable 'l1' [-Wunused-variable] long long ss1_max = -INF, ss1_min = INF, ss2_max =-INF, ss2_min = INF, sp_min = sp[0], i1, i2, sp_max, l1 = -1, l2 = -1, ss1_st, sp_min_i = 0, ss1_dr, sp_max_i = n + 1, ss2_st, ss2_dr; ^ ksplit.cpp:18:117: warning: unused variable 'l2' [-Wunused-variable] long long ss1_max = -INF, ss1_min = INF, ss2_max =-INF, ss2_min = INF, sp_min = sp[0], i1, i2, sp_max, l1 = -1, l2 = -1, ss1_st, sp_min_i = 0, ss1_dr, sp_max_i = n + 1, ss2_st, ss2_dr; ^ ksplit.cpp:71:49: warning: 'ss2_st' may be used uninitialized in this function [-Wmaybe-uninitialized] fout << max(ss1_dr - ss1_st - 1, ss2_dr - ss2_st - 1 ) << '\n'; ^ ksplit.cpp:49:25: warning: 'i2' may be used uninitialized in this function [-Wmaybe-uninitialized] for ( i = n; i > i2 + 1; --i ) ^ ksplit.cpp:71:28: warning: 'ss1_st' may be used uninitialized in this function [-Wmaybe-uninitialized] fout << max(ss1_dr - ss1_st - 1, ss2_dr - ss2_st - 1 ) << '\n'; ^ ksplit.cpp:27:25: warning: 'i1' may be used uninitialized in this function [-Wmaybe-uninitialized] for ( i = n; i > i1 + 1; --i ) ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0 secunde | OK. | 5 | 5 | ||
2 | 0 secunde | OK. | 5 | 5 | ||
3 | 0.008 secunde | OK. | 5 | 5 | ||
4 | 0 secunde | OK. | 5 | 5 | ||
5 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
6 | 0 secunde | OK. | 5 | 5 | ||
7 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
8 | 0 secunde | OK. | 5 | 5 | ||
9 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
10 | 0 secunde | OK. | 5 | 5 | ||
11 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
12 | 0.004 secunde | OK. | 5 | 5 | ||
13 | 0 secunde | OK. | 5 | 5 | ||
14 | 0.004 secunde | Raspuns gresit. | 5 | 0 | ||
15 | 0.004 secunde | OK. | 5 | 5 | ||
16 | 0.008 secunde | Raspuns gresit. | 5 | 0 | ||
17 | 0.008 secunde | OK. | 5 | 5 | ||
18 | 0.012 secunde | OK. | 5 | 5 | ||
19 | 0.012 secunde | OK. | 5 | 5 | ||
20 | 0.016 secunde | Raspuns gresit. | 5 | 0 | ||
Punctaj total | 65 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema ksplit 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ă.