#1119
Se dă o matrice cu m linii şi n coloane, fiecare linie reprezentând o permutare. Se ştie că liniile de la 2 la m sunt permutări circulare ale primei linii. Unei linii x (1 ≤ x ≤ m) i se pot aplica următoarele operaţii:
i (1 < i ≤ n) se mută pe poziţia i-1, mai puţin primul primul element, care devine ultimul;i (1 ≤ i < n) se mută pe poziţia i+1, mai puţin ultimul element care devine primul.Scopul este să permutăm circular liniile, la stânga sau la dreapta, astfel încât în final toate liniile să fie egale, folosind un număr minim de operaţii.
Dându-se o matrice cu proprietatea din enunţ se cere să se determine numărul minim de operaţii necesare pentru a ajunge la o matrice în care toate liniile sunt egale.
| Problema | Permutare1 | Operații I/O |
permutare1.in/permutare1.out
|
|---|---|---|---|
| Limita timp | 0.2 secunde | Limita memorie |
Total: 32 MB
/
Stivă 4 MB
|
| Id soluție | #64977985 | Utilizator | |
| Fișier | permutare1.cpp | Dimensiune | 5.70 KB |
| Data încărcării | 01 Iulie 2026, 19:16 | Scor/rezultat | 10 puncte |
permutare1.cpp: In function ‘int main()’: permutare1.cpp:70:19: warning: unused variable ‘delta’ [-Wunused-variable] 70 | long long delta = 0; | ^~~~~ permutare1.cpp:83:13: warning: unused variable ‘left_start’ [-Wunused-variable] 83 | int left_start = (k - half + n) % n; | ^~~~~~~~~~ permutare1.cpp:84:13: warning: unused variable ‘left_end’ [-Wunused-variable] 84 | int left_end = k - 1; | ^~~~~~~~ permutare1.cpp:85:13: warning: unused variable ‘right_start’ [-Wunused-variable] 85 | int right_start = k; | ^~~~~~~~~~~ permutare1.cpp:86:13: warning: unused variable ‘right_end’ [-Wunused-variable] 86 | int right_end = (k + half - 1) % n; | ^~~~~~~~~ permutare1.cpp:87:13: warning: unused variable ‘far_start’ [-Wunused-variable] 87 | int far_start = (k + half) % n; | ^~~~~~~~~ permutare1.cpp:88:13: warning: unused variable ‘far_end’ [-Wunused-variable] 88 | int far_end = (k + n - 1) % n; | ^~~~~~~ permutare1.cpp:93:13: warning: unused variable ‘kk’ [-Wunused-variable] 93 | int kk = k; // poziția curentă în vectorul dublat | ^~ permutare1.cpp:54:10: warning: variable ‘get_sum’ set but not used [-Wunused-but-set-variable] 54 | auto get_sum = [&](int l, int r) -> long long { | ^~~~~~~
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 0 | 0.001 secunde | OK. | 10 | 10 | ||
| 1 | 0.002 secunde | Raspuns gresit. | 10 | 0 | ||
| 2 | 0.001 secunde | Raspuns gresit. | 10 | 0 | ||
| 3 | 0.004 secunde | Raspuns gresit. | 10 | 0 | ||
| 4 | 0.003 secunde | Raspuns gresit. | 10 | 0 | ||
| 5 | 0.023 secunde | Raspuns gresit. | 10 | 0 | ||
| 6 | 0.013 secunde | Raspuns gresit. | 10 | 0 | ||
| 7 | 0.017 secunde | Raspuns gresit. | 10 | 0 | ||
| 8 | 0.027 secunde | Raspuns gresit. | 10 | 0 | ||
| 9 | 0.019 secunde | Raspuns gresit. | 10 | 0 | ||
| Punctaj total | 10 | |||||
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Permutare1 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ă.