#3035
lumini
Privită din spațiu, harta insulei din povestea noastră are forma unui caroiaj pătratic cu L linii și L coloane. Liniile și coloanele sunt numerotate de la 1 la L. În fiecare dintre cele L*L celule se află câte un far. Inițial cel de la poziția 1,1 este aprins și toate respectă regula: orice far are farurile vecine (pe linie și coloană, deci maximum 4) în starea opusă față de starea sa. În urma unei furtuni, s-au întâmplat lucruri ciudate: fulgerele au lovit unul după altul și au afectat starea unor faruri. Sunt trei tipuri de fulgere. Prin schimbarea stării unui far înțelegem că acesta se aprinde dacă este stins și se stinge dacă este aprins.
Se dau date despre fulgere, în ordinea în care acestea acționează. Se cere ca la finalul furtunii să se indice care este starea anumitor faruri, aflate la coordonate precizate de pe insulă.
ONIGIM 2019 clasa a VIII-a
Problema | lumini | Operații I/O |
![]() lumini.in /lumini.out
|
---|---|---|---|
Limita timp | 0.3 secunde | Limita memorie |
Total: 20 MB
/
Stivă 8 MB
|
Id soluție | #57925499 | Utilizator | |
Fișier | lumini.cpp | Dimensiune | 1.20 KB |
Data încărcării | 02 Mai 2025, 08:36 | Scor / rezultat | Eroare de compilare |
lumini.cpp: In function 'int main()': lumini.cpp:24:10: warning: unused variable 'ab' [-Wunused-variable] char ab[100]; ^ In file included from /usr/include/c++/4.8/bits/stl_map.h:63:0, from /usr/include/c++/4.8/map:61, from lumini.cpp:2: /usr/include/c++/4.8/tuple: In instantiation of 'std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>) [with _Args1 = {const char (&)[100]}; unsigned int ..._Indexes1 = {0u}; _Args2 = {}; unsigned int ..._Indexes2 = {}; _T1 = const char [100]; _T2 = bool]': /usr/include/c++/4.8/tuple:1079:63: required from 'std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>) [with _Args1 = {const char (&)[100]}; _Args2 = {}; _T1 = const char [100]; _T2 = bool]' /usr/include/c++/4.8/bits/stl_tree.h:140:49: required from 'std::_Rb_tree_node<_Val>::_Rb_tree_node(_Args&& ...) [with _Args = {const std::piecewise_construct_t&, std::tuple<const char (&)[100]>, std::tuple<>}; _Val = std::pair<const char [100], bool>]' /usr/include/c++/4.8/ext/new_allocator.h:120:4: required from 'void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = std::_Rb_tree_node<std::pair<const char [100], bool> >; _Args = {const std::piecewise_construct_t&, std::tuple<const char (&)[100]>, std::tuple<>}; _Tp = std::_Rb_tree_node<std::pair<const char [100], bool> >]' /usr/include/c++/4.8/bits/alloc_traits.h:254:4: required from 'static typename std::enable_if<std::allocator_traits<_Alloc>::__construct_helper<_Tp, _Args>::value, void>::type std::allocator_traits<_Alloc>::_S_construct(_Alloc&, _Tp*, _Args&& ...) [with _Tp = std::_Rb_tree_node<std::pair<const char [100], bool> >; _Args = {const std::piecewise_construct_t&, std::tuple<const char (&)[100]>, std::tuple<>}; _Alloc = std::allocator<std::_Rb_tree_node<std::pair<const char [100], bool> > >; typename std::enable_if<std::allocator_traits<_Alloc>::__construct_helper<_Tp, _Args>::value, void>::type = void]' /usr/include/c++/4.8/bits/alloc_traits.h:393:57: required from 'static decltype (_S_construct(__a, __p, (forward<_Args>)(std::allocator_traits::construct::__args)...)) std::allocator_traits<_Alloc>::construct(_Alloc&, _Tp*, _Args&& ...) [with _Tp = std::_Rb_tree_node<std::pair<const char [100], bool> >; _Args = {const std::piecewise_construct_t&, std::tuple<const char (&)[100]>, std::tuple<>}; _Alloc = std::allocator<std::_Rb_tree_node<std::pair<const char [100], bool> > >; decltype (_S_construct(__a, __p, (forward<_Args>)(std::allocator_traits::construct::__args)...)) = <type error>]' /usr/include/c++/4.8/bits/stl_tree.h:408:36: required from 'std::_Rb_tree_node<_Val>* std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_create_node(_Args&& ...) [with _Args = {const std::piecewise_construct_t&, std::tuple<const char (&)[100]>, std::tuple<>}; _Key = char [100]; _Val = std::pair<const char [100], bool>; _KeyOfValue = std::_Select1st<std::pair<const char [100], bool> >; _Compare = std::less<char [100]>; _Alloc = std::allocator<std::pair<const char [100], bool> >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type = std::_Rb_tree_node<std::pair<const char [100], bool> >*]' /usr/include/c++/4.8/bits/stl_tree.h:1669:64: required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_emplace_hint_unique(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator, _Args&& ...) [with _Args = {const std::piecewise_construct_t&, std::tuple<const char (&)[100]>, std::tuple<>}; _Key = char [100]; _Val = std::pair<const char [100], bool>; _KeyOfValue = std::_Select1st<std::pair<const char [100], bool> >; _Compare = std::less<char [100]>; _Alloc = std::allocator<std::pair<const char [100], bool> >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const char [100], bool> >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const char [100], bool> >]' /usr/include/c++/4.8/bits/stl_map.h:465:8: required from 'std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](const key_type&) [with _Key = char [100]; _Tp = bool; _Compare = std::less<char [100]>; _Alloc = std::allocator<std::pair<const char [100], bool> >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = bool; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = char [100]]' lumini.cpp:40:18: required from here /usr/include/c++/4.8/tuple:1090:70: error: array used as initializer second(std::forward<_Args2>(std::get<_Indexes2>(__tuple2))...) ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema lumini 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ă.