#628
Cub1
Lui Andrei îi plac foarte mult jocurile de tip puzzle. De curând, el a descoperit un joc nou: un cub de dimensiune n
format din n•n•n
cuburi unitate sub forma unor cămăruţe. Cubul poate fi văzut ca o matrice tridimensionala ale cărei elemente sunt cămăruţele. Două cămăruţe se numesc adiacente dacă au o faţă comună. Astfel, o cămăruţă poate fi adiacentă cu maxim 6
cămăruţe. Scopul jocului este acela de a duce o bilă din cămăruţa de coordonate (1,1,1)
în cămăruţa de coordonate (n,n,n)
. Bila poate trece dintr-o cămăruţă în alta doar dacă acestea sunt adiacente, iar noua cămăruţă este accesibilă din cămăruţa curentă.
Cunoscând n
, dimensiunea cubului şi valorile asociate fiecărei cămăruţe, determinaţi:
a) cămăruța cu un număr maxim de cămăruțe ce pot fi accesate din ea;
b) un drum de lungime minimă de la cămăruţa (1,1,1)
la cămăruţa (n,n,n)
.
Grigore Moisil, 2014
Problema | Cub1 | Operații I/O |
cub1.in /cub1.out
|
---|---|---|---|
Limita timp | 2 secunde | Limita memorie |
Total: 32 MB
/
Stivă 16 MB
|
Id soluție | #40247291 | Utilizator | |
Fișier | cub1.cpp | Dimensiune | 1.66 KB |
Data încărcării | 03 Decembrie 2022, 09:50 | Scor / rezultat | Eroare de compilare |
In file included from /usr/include/c++/4.8/bits/char_traits.h:39:0, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from cub1.cpp:1: /usr/include/c++/4.8/bits/stl_algobase.h: In instantiation of 'const _Tp& std::min(const _Tp&, const _Tp&, _Compare) [with _Tp = int; _Compare = int]': cub1.cpp:26:23: required from here /usr/include/c++/4.8/bits/stl_algobase.h:242:26: error: '__comp' cannot be used as a function if (__comp(__b, __a)) ^ /usr/include/c++/4.8/bits/stl_algobase.h: In instantiation of 'const _Tp& std::max(const _Tp&, const _Tp&, _Compare) [with _Tp = int; _Compare = int]': cub1.cpp:26:45: required from here /usr/include/c++/4.8/bits/stl_algobase.h:263:26: error: '__comp' cannot be used as a function if (__comp(__a, __b)) ^ In file included from /usr/include/i386-linux-gnu/c++/4.8/bits/c++allocator.h:33:0, from /usr/include/c++/4.8/bits/allocator.h:46, from /usr/include/c++/4.8/string:41, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from cub1.cpp:1: /usr/include/c++/4.8/ext/new_allocator.h: In instantiation of 'void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = Pos; _Args = {int, int, int}; _Tp = Pos]': /usr/include/c++/4.8/bits/deque.tcc:137:6: required from 'void std::deque<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {int, int, int}; _Tp = Pos; _Alloc = std::allocator<Pos>]' /usr/include/c++/4.8/bits/stl_queue.h:223:4: required from 'void std::queue<_Tp, _Sequence>::emplace(_Args&& ...) [with _Args = {int, int, int}; _Tp = Pos; _Sequence = std::deque<Pos, std::allocator<Pos> >]' cub1.cpp:58:41: required from here /usr/include/c++/4.8/ext/new_allocator.h:120:4: error: new initializer expression list treated as compound expression [-fpermissive] { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } ^ /usr/include/c++/4.8/ext/new_allocator.h:120:4: error: no matching function for call to 'Pos::Pos(int)' /usr/include/c++/4.8/ext/new_allocator.h:120:4: note: candidates are: cub1.cpp:17:8: note: Pos::Pos() struct Pos{ ^ cub1.cpp:17:8: note: candidate expects 0 arguments, 1 provided cub1.cpp:17:8: note: constexpr Pos::Pos(const Pos&) cub1.cpp:17:8: note: no known conversion for argument 1 from 'int' to 'const Pos&' cub1.cpp:17:8: note: constexpr Pos::Pos(Pos&&) cub1.cpp:17:8: note: no known conversion for argument 1 from 'int' to 'Pos&&'
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Cub1 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ă.