#2654
Pentru un șir de numere \( A \) se definește următoarea funcție de cost: \( f(A) = 1 \cdot v_1 + 2 \cdot v_2 + … + k \cdot v_k \), unde \( [v_1, v_2, …, v_k] \) sunt valorile distincte ale lui \( A \), ordonate crescător.
Fiind dat un șir de N numere naturale A, să se calculeze suma aplicării funcției f pe toate subsecvențele lui A (i.e. suma după (1 ≤ i ≤ j ≤ N) din f(A[i...j]), unde A[i…j] este subsecvența de la i la j).
| Problema | sortall | Operații I/O |
sortall.in/sortall.out
|
|---|---|---|---|
| Limita timp | 10 secunde | Limita memorie |
Total: 512 MB
/
Stivă 512 MB
|
| Id soluție | #58737455 | Utilizator | |
| Fișier | sortall.cpp | Dimensiune | 8.83 KB |
| Data încărcării | 28 Iulie 2025, 20:57 | Scor/rezultat | 0 puncte |
sortall.cpp: In function 'int main()': sortall.cpp:84:19: warning: unused variable 'sum_pos_less' [-Wunused-variable] long long sum_pos_less = aib_pos.query(1, v - 1); ^ sortall.cpp:85:19: warning: unused variable 'count_less' [-Wunused-variable] long long count_less = aib_pos.query(0, v - 1); // În acest context, este un truc pentru a obține numărul de elemente ^ sortall.cpp:92:19: warning: unused variable 'sum_less_v' [-Wunused-variable] long long sum_less_v = 0; ^ sortall.cpp:93:19: warning: unused variable 'sum_greater_v' [-Wunused-variable] long long sum_greater_v = 0; ^ sortall.cpp:96:19: warning: unused variable 'S1' [-Wunused-variable] long long S1 = aib_pos.query(v - 1); ^ sortall.cpp:97:19: warning: unused variable 'C1' [-Wunused-variable] long long C1 = 0; // Necesar un AIB de numărare. Simplificarea algebrică evită acest lucru. ^ sortall.cpp:99:19: warning: unused variable 'total_sum_pos_less' [-Wunused-variable] long long total_sum_pos_less = aib_pos.query(1, v - 1); ^ sortall.cpp:100:19: warning: unused variable 'total_val_pos_less' [-Wunused-variable] long long total_val_pos_less = aib_val_pos.query(1, v - 1); // Acest AIB nu e necesar pentru sum_less_v ^ sortall.cpp:103:19: warning: unused variable 'total_sum_pos_greater' [-Wunused-variable] long long total_sum_pos_greater = aib_pos.query(v + 1, N); ^ sortall.cpp:104:19: warning: unused variable 'total_val_pos_greater' [-Wunused-variable] long long total_val_pos_greater = aib_val_pos.query(v + 1, N); ^ sortall.cpp:118:19: warning: unused variable 'neg_term' [-Wunused-variable] long long neg_term = ( (v * p % MOD) * 0 /*count_less*/ + p * aib_pos.query(v + 1, N) % MOD ) % MOD; ^ sortall.cpp:136:19: warning: unused variable 'sum_pos_less_all' [-Wunused-variable] long long sum_pos_less_all = aib_pos.query(1, v - 1); ^ sortall.cpp:147:19: warning: unused variable 'term_v_k' [-Wunused-variable] long long term_v_k = (v * (k - p % MOD + MOD)) % MOD; ^ sortall.cpp:149:19: warning: unused variable 'sum_lp_less' [-Wunused-variable] long long sum_lp_less = aib_pos.query(v - 1); ^ sortall.cpp:153:19: warning: unused variable 'sum_ulp_greater' [-Wunused-variable] long long sum_ulp_greater = aib_val_pos.query(v + 1, N); ^ sortall.cpp:167:19: warning: unused variable 'Su_greater' [-Wunused-variable] long long Su_greater = aib_pos.query(v + 1, N); // Necesită un AIB pe \`u\` ^ sortall.cpp:176:19: warning: unused variable 'sub' [-Wunused-variable] long long sub = (v * p) % MOD; ^
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 0 | 0 secunde | Raspuns gresit. | 0 | 0 | ||
| 1 | 0 secunde | Raspuns gresit. | 0 | 0 | ||
| 2 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
| 3 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
| 4 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
| 5 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
| 6 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
| 7 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
| 8 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
| 9 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
| 10 | 0.024 secunde | Raspuns gresit. | 6 | 0 | ||
| 11 | 0.02 secunde | Raspuns gresit. | 6 | 0 | ||
| 12 | 0.016 secunde | Raspuns gresit. | 6 | 0 | ||
| 13 | 0.02 secunde | Raspuns gresit. | 6 | 0 | ||
| 14 | 0.024 secunde | Raspuns gresit. | 6 | 0 | ||
| 15 | 0.024 secunde | Raspuns gresit. | 5 | 0 | ||
| 16 | 0.024 secunde | Raspuns gresit. | 5 | 0 | ||
| 17 | 0.02 secunde | Raspuns gresit. | 7 | 0 | ||
| 18 | 0.024 secunde | Raspuns gresit. | 7 | 0 | ||
| 19 | 0.024 secunde | Raspuns gresit. | 6 | 0 | ||
| Punctaj total | 0 | |||||
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema sortall 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ă.