grader.c: In function 'int main()':
grader.c:15:6: warning: variable 'res' set but not used [-Wunused-but-set-variable]
15 | int res;
| ^~~
wombats.cpp:30:15: error: expected unqualified-id before '=' token
30 | struct Monoid = std::optional<SemiGroup>;
| ^
wombats.cpp:31:23: error: return type 'struct Monoid' is incomplete
31 | constexpr Monoid zero() { return std::nullopt; }
| ^
wombats.cpp:32:52: error: return type 'struct Monoid' is incomplete
32 | Monoid operator + (const Monoid& l, const Monoid& r) {
| ^
wombats.cpp: In function 'void operator+(const Monoid&, const Monoid&)':
wombats.cpp:33:9: error: no match for 'operator!' (operand type is 'const Monoid')
33 | if (!l) return r;
| ^~
wombats.cpp:33:9: note: candidate: 'operator!(bool)' (built-in)
wombats.cpp:33:9: note: no known conversion for argument 1 from 'const Monoid' to 'bool'
wombats.cpp:34:9: error: no match for 'operator!' (operand type is 'const Monoid')
34 | if (!r) return l;
| ^~
wombats.cpp:34:9: note: candidate: 'operator!(bool)' (built-in)
wombats.cpp:34:9: note: no known conversion for argument 1 from 'const Monoid' to 'bool'
wombats.cpp:35:12: error: no match for 'operator*' (operand type is 'const Monoid')
35 | return *l + *r;
| ^~
wombats.cpp:35:17: error: no match for 'operator*' (operand type is 'const Monoid')
35 | return *l + *r;
| ^~
wombats.cpp: In constructor 'Segtree::Segtree(int)':
wombats.cpp:47:61: error: invalid use of void expression
47 | Segtree(const int n): data(1 << (ceil_log2(n) + 1), zero()) {}
| ~~~~^~
wombats.cpp: In member function 'void Segtree::assign(int, const Monoid&)':
wombats.cpp:50:19: error: invalid use of incomplete type '__gnu_cxx::__alloc_traits<std::allocator<Monoid>, Monoid>::value_type' {aka 'struct Monoid'}
50 | data[i] = m;
| ^
wombats.cpp:30:8: note: forward declaration of '__gnu_cxx::__alloc_traits<std::allocator<Monoid>, Monoid>::value_type' {aka 'struct Monoid'}
30 | struct Monoid = std::optional<SemiGroup>;
| ^~~~~~
wombats.cpp:53:51: error: invalid use of incomplete type '__gnu_cxx::__alloc_traits<std::allocator<Monoid>, Monoid>::value_type' {aka 'struct Monoid'}
53 | data[i] = data[2 * i] + data[2 * i + 1];
| ^
wombats.cpp:30:8: note: forward declaration of '__gnu_cxx::__alloc_traits<std::allocator<Monoid>, Monoid>::value_type' {aka 'struct Monoid'}
30 | struct Monoid = std::optional<SemiGroup>;
| ^~~~~~
wombats.cpp: At global scope:
wombats.cpp:56:19: error: return type 'struct Monoid' is incomplete
56 | Monoid fold() { return data[1]; }
| ^
wombats.cpp: In function 'void init(int, int, int (*)[200], int (*)[200])':
wombats.cpp:85:27: error: cannot convert 'SemiGroup' to 'const Monoid&'
85 | seg.assign(i, SemiGroup{pos[i], i});
| ^~~~~~~~~~~~~~~~~~~~
| |
| SemiGroup
wombats.cpp:48:38: note: initializing argument 2 of 'void Segtree::assign(int, const Monoid&)'
48 | void assign(int i, const Monoid& m) {
| ~~~~~~~~~~~~~~^
wombats.cpp: In function 'void changeH(int, int, int)':
wombats.cpp:99:23: error: cannot convert 'SemiGroup' to 'const Monoid&'
99 | seg.assign(i, SemiGroup{pos[i], i});
| ^~~~~~~~~~~~~~~~~~~~
| |
| SemiGroup
wombats.cpp:48:38: note: initializing argument 2 of 'void Segtree::assign(int, const Monoid&)'
48 | void assign(int i, const Monoid& m) {
| ~~~~~~~~~~~~~~^
wombats.cpp: In function 'void changeV(int, int, int)':
wombats.cpp:113:20: error: 'i' was not declared in this scope
113 | seg.assign(i, SemiGroup{pos[i], i});
| ^
In file included from /usr/include/c++/10/vector:67,
from /usr/include/c++/10/functional:62,
from /usr/include/c++/10/pstl/glue_algorithm_defs.h:13,
from /usr/include/c++/10/algorithm:74,
from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
from wombats.cpp:1:
/usr/include/c++/10/bits/stl_vector.h: In instantiation of 'std::vector<_Tp, _Alloc>::size_type std::vector<_Tp, _Alloc>::size() const [with _Tp = Monoid; _Alloc = std::allocator<Monoid>; std::vector<_Tp, _Alloc>::size_type = long unsigned int]':
wombats.cpp:49:24: required from here
/usr/include/c++/10/bits/stl_vector.h:919:50: error: invalid use of incomplete type 'struct Monoid'
919 | { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); }
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
wombats.cpp:30:8: note: forward declaration of 'struct Monoid'
30 | struct Monoid = std::optional<SemiGroup>;
| ^~~~~~
In file included from /usr/include/c++/10/vector:67,
from /usr/include/c++/10/functional:62,
from /usr/include/c++/10/pstl/glue_algorithm_defs.h:13,
from /usr/include/c++/10/algorithm:74,
from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
from wombats.cpp:1:
/usr/include/c++/10/bits/stl_vector.h: In instantiation of 'std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = Monoid; _Alloc = std::allocator<Monoid>; std::vector<_Tp, _Alloc>::reference = Monoid&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]':
wombats.cpp:50:15: required from here
/usr/include/c++/10/bits/stl_vector.h:1046:34: error: invalid use of incomplete type 'struct Monoid'
1046 | return *(this->_M_impl._M_start + __n);
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
wombats.cpp:30:8: note: forward declaration of 'struct Monoid'
30 | struct Monoid = std::optional<SemiGroup>;
| ^~~~~~
In file included from /usr/include/c++/10/vector:67,
from /usr/include/c++/10/functional:62,
from /usr/include/c++/10/pstl/glue_algorithm_defs.h:13,
from /usr/include/c++/10/algorithm:74,
from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
from wombats.cpp:1:
/usr/include/c++/10/bits/stl_vector.h: In instantiation of 'std::_Vector_base<_Tp, _Alloc>::~_Vector_base() [with _Tp = Monoid; _Alloc = std::allocator<Monoid>]':
/usr/include/c++/10/bits/stl_vector.h:487:7: required from here
/usr/include/c++/10/bits/stl_vector.h:336:35: error: invalid use of incomplete type 'struct Monoid'
336 | _M_impl._M_end_of_storage - _M_impl._M_start);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
wombats.cpp:30:8: note: forward declaration of 'struct Monoid'
30 | struct Monoid = std::optional<SemiGroup>;
| ^~~~~~
In file included from /usr/include/c++/10/bits/move.h:57,
from /usr/include/c++/10/bits/stl_pair.h:59,
from /usr/include/c++/10/bits/stl_algobase.h:64,
from /usr/include/c++/10/bits/specfun.h:45,
from /usr/include/c++/10/cmath:1927,
from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
from wombats.cpp:1:
/usr/include/c++/10/type_traits: In instantiation of 'struct std::is_destructible<Monoid>':
/usr/include/c++/10/bits/stl_construct.h:177:51: required from 'void std::_Destroy(_ForwardIterator, _ForwardIterator) [with _ForwardIterator = Monoid*]'
/usr/include/c++/10/bits/alloc_traits.h:738:15: required from 'void std::_Destroy(_ForwardIterator, _ForwardIterator, std::allocator<_T2>&) [with _ForwardIterator = Monoid*; _Tp = Monoid]'
/usr/include/c++/10/bits/stl_vector.h:680:15: required from 'std::vector<_Tp, _Alloc>::~vector() [with _Tp = Monoid; _Alloc = std::allocator<Monoid>]'
wombats.cpp:47:63: required from here
/usr/include/c++/10/type_traits:844:52: error: static assertion failed: template argument must be a complete class or an unbounded array
844 | static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/10/bits/alloc_traits.h:33,
from /usr/include/c++/10/ext/alloc_traits.h:34,
from /usr/include/c++/10/bits/basic_string.h:40,
from /usr/include/c++/10/string:55,
from /usr/include/c++/10/bits/locale_classes.h:40,
from /usr/include/c++/10/bits/ios_base.h:41,
from /usr/include/c++/10/ios:42,
from /usr/include/c++/10/istream:38,
from /usr/include/c++/10/sstream:38,
from /usr/include/c++/10/complex:45,
from /usr/include/c++/10/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
from wombats.cpp:1:
/usr/include/c++/10/bits/stl_construct.h: In instantiation of 'void std::_Destroy(_ForwardIterator, _ForwardIterator) [with _ForwardIterator = Monoid*]':
/usr/include/c++/10/bits/alloc_traits.h:738:15: required from 'void std::_Destroy(_ForwardIterator, _ForwardIterator, std::allocator<_T2>&) [with _ForwardIterator = Monoid*; _Tp = Monoid]'
/usr/include/c++/10/bits/stl_vector.h:680:15: required from 'std::vector<_Tp, _Alloc>::~vector() [with _Tp = Monoid; _Alloc = std::allocator<Monoid>]'
wombats.cpp:47:63: required from here
/usr/include/c++/10/bits/stl_construct.h:177:51: error: static assertion failed: value type is destructible
177 | static_assert(is_destructible<_Value_type>::value,
| ^~~~~
/usr/include/c++/10/bits/stl_construct.h:184:25: error: invalid use of incomplete type 'std::iterator_traits<Monoid*>::value_type' {aka 'struct Monoid'}
184 | std::_Destroy_aux<__has_trivial_destructor(_Value_type)>::
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
wombats.cpp:30:8: note: forward declaration of 'std::iterator_traits<Monoid*>::value_type' {aka 'struct Monoid'}
30 | struct Monoid = std::optional<SemiGroup>;
| ^~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/10/bits/c++allocator.h:33,
from /usr/include/c++/10/bits/allocator.h:46,
from /usr/include/c++/10/string:41,
from /usr/include/c++/10/bits/locale_classes.h:40,
from /usr/include/c++/10/bits/ios_base.h:41,
from /usr/include/c++/10/ios:42,
from /usr/include/c++/10/istream:38,
from /usr/include/c++/10/sstream:38,
from /usr/include/c++/10/complex:45,
from /usr/include/c++/10/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
from wombats.cpp:1:
/usr/include/c++/10/ext/new_allocator.h: In instantiation of 'void __gnu_cxx::new_allocator<_Tp>::deallocate(_Tp*, __gnu_cxx::new_allocator<_Tp>::size_type) [with _Tp = Monoid; __gnu_cxx::new_allocator<_Tp>::size_type = long unsigned int]':
/usr/include/c++/10/bits/alloc_traits.h:492:23: required from 'static void std::allocator_traits<std::allocator<_CharT> >::deallocate(std::allocator_traits<std::allocator<_CharT> >::allocator_type&, std::allocator_traits<std::allocator<_CharT> >::pointer, std::allocator_traits<std::allocator<_CharT> >::size_type) [with _Tp = Monoid; std::allocator_traits<std::allocator<_CharT> >::allocator_type = std::allocator<Monoid>; std::allocator_traits<std::allocator<_CharT> >::pointer = Monoid*; std::allocator_traits<std::allocator<_CharT> >::size_type = long unsigned int]'
/usr/include/c++/10/bits/stl_vector.h:354:19: required from 'void std::_Vector_base<_Tp, _Alloc>::_M_deallocate(std::_Vector_base<_Tp, _Alloc>::pointer, std::size_t) [with _Tp = Monoid; _Alloc = std::allocator<Monoid>; std::_Vector_base<_Tp, _Alloc>::pointer = Monoid*; std::size_t = long unsigned int]'
/usr/include/c++/10/bits/stl_vector.h:335:2: required from 'std::_Vector_base<_Tp, _Alloc>::~_Vector_base() [with _Tp = Monoid; _Alloc = std::allocator<Monoid>]'
/usr/include/c++/10/bits/stl_vector.h:487:7: required from here
/usr/include/c++/10/ext/new_allocator.h:123:6: error: invalid application of '__alignof__' to incomplete type 'Monoid'
123 | if (alignof(_Tp) > __STDCPP_DEFAULT_NEW_ALIGNMENT__)
| ^~~~~~~~~~~~
/usr/include/c++/10/ext/new_allocator.h:127:16: error: invalid application of 'sizeof' to incomplete type 'Monoid'
127 | __t * sizeof(_Tp),
| ^~~~~~~~~~~
/usr/include/c++/10/ext/new_allocator.h:129:27: error: invalid application of '__alignof__' to incomplete type 'Monoid'
129 | std::align_val_t(alignof(_Tp)));
| ^~~~~~~~~~~~
/usr/include/c++/10/ext/new_allocator.h:135:14: error: invalid application of 'sizeof' to incomplete type 'Monoid'
135 | , __t * sizeof(_Tp)
| ^~~~~~~~~~~
wombats.cpp: In function 'int escape(int, int)':
wombats.cpp:124:19: warning: control reaches end of non-void function [-Wreturn-type]
124 | else if (Type == 2) {
| ~~~~~^~~~