#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 | #50529007 | Utilizator | |
Fișier | sort2dist.cpp | Dimensiune | 2.02 KB |
Data încărcării | 13 Aprilie 2024, 12:32 | Scor / rezultat | Eroare de compilare |
sort2dist.cpp:11:1: error: expected unqualified-id before '__int128' __int128 s[MAX], poz, x; ^ sort2dist.cpp:12:31: error: wrong number of template arguments (1, should be 2) vector<pair<__int128, uint32_t>> v, sol; ^ In file included from /usr/include/c++/4.8/bits/stl_algobase.h:64:0, from /usr/include/c++/4.8/bits/char_traits.h:39, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/sstream:38, from /usr/include/c++/4.8/complex:45, from /usr/include/c++/4.8/ccomplex:38, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:52, from sort2dist.cpp:2: /usr/include/c++/4.8/bits/stl_pair.h:96:12: error: provided for 'template<class _T1, class _T2> struct std::pair' struct pair ^ sort2dist.cpp:12:37: error: template argument 1 is invalid vector<pair<__int128, uint32_t>> v, sol; ^ sort2dist.cpp:12:37: error: template argument 2 is invalid sort2dist.cpp:16:28: error: '__int128_t' has not been declared operator<<( ostream& dest, __int128_t value ) ^ sort2dist.cpp: In function 'std::ostream& operator<<(std::ostream&, int)': sort2dist.cpp:20:9: error: '__uint128_t' was not declared in this scope __uint128_t tmp = value < 0 ? -value : value; ^ sort2dist.cpp:20:21: error: expected ';' before 'tmp' __uint128_t tmp = value < 0 ? -value : value; ^ sort2dist.cpp:26:32: error: 'tmp' was not declared in this scope *d = "0123456789"[ tmp % 10 ]; ^ sort2dist.cpp:28:19: error: 'tmp' was not declared in this scope } while ( tmp != 0 ); ^ sort2dist.cpp: At global scope: sort2dist.cpp:41:1: error: expected unqualified-id before '__int128' __int128 read() { ^
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ă.