#1225
sort2dist
Jocul pe care îl joaca Robo atunci când se plictisește este un joc inteligent pentru roboței. Pe ecranul tabletei lui roboțești, sunt N
căsuțe de formă pătrată, cu latura egală cu 1
. Căsuțele sunt așezate pe un rând, una lângă alta, fiind etichetate, în această ordine, cu numere de la 1
la N
. Fiecare căsuță conține câte un număr natural, identificatorul câte unuia dintre prietenii săi, roboței, ca și el. Identificatorii se pot repeta.
Robo poate interschimba conținutul a două căsuțe, numai dacă distanța dintre centrele acestora pe orizontală este egală cu distanța dintre brațele sale; distanța, pe orizontală, dintre centrele a două căsuțe etichetate cu i
, respectiv cu j
, este j-i
(1≤i<j≤N
).
El își poate fixa în orice moment distanța dintre brațe la 1
sau își poate dubla distanța curentă dintre brațe, de oricâte ori este necesar, fără a depăși valoarea N-1
. Astfel, distanța dintre brațele sale poate fi 1
, apoi, prin dublare, 2
, apoi, prin dublare 4
, apoi, prin dublare 8
etc. La începutul jocului, distanța dintre brațele lui Robo este 1
. De fiecare dată când consideră convenabilă distanța dintre brațe, realizează o interschimbare.
Se cere ca Robo să așeze identificatorii în căsuțe în ordine crescătoare, prin maximum 12500
interschimbări de tipul celei precizate mai sus.
ONI GIM 2015, Clasa a VIII-a
Problema | sort2dist | Operații I/O |
sort2dist.in /sort2dist.out
|
---|---|---|---|
Limita timp | 0.4 secunde | Limita memorie |
Total: 8 MB
/
Stivă 8 MB
|
Id soluție | #51908941 | Utilizator | |
Fișier | sort2dist.cpp | Dimensiune | 863 B |
Data încărcării | 07 Septembrie 2024, 09:01 | Scor / rezultat | Eroare de compilare |
sort2dist.cpp: In function 'int main()': sort2dist.cpp:4:5: error: 'cin' was not declared in this scope cin >> n; ^ sort2dist.cpp:6:16: error: 'v' was not declared in this scope cin >> v[i]; ^ sort2dist.cpp:7:9: error: 'divc' was not declared in this scope divc[i] = div_nr(v[i]); ^ sort2dist.cpp:7:30: error: 'div_nr' was not declared in this scope divc[i] = div_nr(v[i]); ^ sort2dist.cpp:13:17: error: 'divc' was not declared in this scope if (divc[i] > divc[j]) { ^ sort2dist.cpp:14:38: error: 'swap' was not declared in this scope swap(divc[i], divc[j]); ^ sort2dist.cpp:15:22: error: 'v' was not declared in this scope swap(v[i], v[j]); ^ sort2dist.cpp:21:13: error: 'divc' was not declared in this scope if (divc[i] != divc[i + 1]) { ^ sort2dist.cpp:23:13: error: 'cout' was not declared in this scope cout << divc[i] << " "; ^ sort2dist.cpp:25:13: error: 'divc' was not declared in this scope if (divc[i] == divc[i + 1]) { ^ sort2dist.cpp:29:5: error: 'cout' was not declared in this scope cout << nr + 1; ^ sort2dist.cpp:3:21: warning: unused variable 'grupe' [-Wunused-variable] int n, nr = 0 , grupe = 1 , nr_grupe[205]; ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema sort2dist 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ă.