#1225
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 | #63106170 | Utilizator | |
| Fișier | sort2dist.cpp | Dimensiune | 1.11 KB |
| Data încărcării | 14 Februarie 2026, 14:00 | Scor/rezultat | Eroare de compilare |
sort2dist.cpp:12:6: error: '__int128_t' was not declared in this scope pair<__int128_t,int> sir[1001]; ^ sort2dist.cpp:12:20: error: template argument 1 is invalid pair<__int128_t,int> sir[1001]; ^ sort2dist.cpp:12:31: error: invalid type in declaration before ';' token pair<__int128_t,int> sir[1001]; ^ sort2dist.cpp: In function 'int main()': sort2dist.cpp:20:20: error: request for member 'first' in 'sir[i]', which is of non-class type 'int' sir[i].first=sir[i].first*10+c-'0'; ^ sort2dist.cpp:20:33: error: request for member 'first' in 'sir[i]', which is of non-class type 'int' sir[i].first=sir[i].first*10+c-'0'; ^ sort2dist.cpp:22:16: error: request for member 'second' in 'sir[i]', which is of non-class type 'int' sir[i].second=i; ^ sort2dist.cpp:23:21: error: request for member 'first' in 'sir[i]', which is of non-class type 'int' s[i]=sir[i].first; ^ sort2dist.cpp:27:23: error: request for member 'second' in 'sir[i]', which is of non-class type 'int' pos[i]=sir[i].second; ^ sort2dist.cpp:28:18: error: request for member 'second' in 'sir[i]', which is of non-class type 'int' s[sir[i].second]=i; ^ sort2dist.cpp:45:14: error: expected unqualified-id before '[' token for(auto [l, r] : changes) { ^ sort2dist.cpp:45:14: error: expected ';' before '[' token sort2dist.cpp:45:15: error: 'l' was not declared in this scope for(auto [l, r] : changes) { ^ sort2dist.cpp:45:18: error: 'r' was not declared in this scope for(auto [l, r] : changes) { ^ sort2dist.cpp: In lambda function: sort2dist.cpp:45:21: error: expected '{' before ':' token for(auto [l, r] : changes) { ^ sort2dist.cpp: In function 'int main()': sort2dist.cpp:45:21: error: expected ';' before ':' token sort2dist.cpp:45:21: error: expected primary-expression before ':' token sort2dist.cpp:45:21: error: expected ')' before ':' token sort2dist.cpp:45:21: error: expected primary-expression before ':' token sort2dist.cpp:45:21: error: expected ';' before ':' token
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ă.