Main.cpp: In function 'void solve()':
Main.cpp:89:26: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
89 | for (ll j = 0; j < e.size(); j++)
| ~~^~~~~~~~~~
Main.cpp:93:26: error: no matching function for call to 'std::set<std::array<int, 2> >::insert(std::array<long long int, 2>&)'
93 | hs.insert(cur);
| ^
In file included from /usr/include/c++/10/set:61,
from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:87,
from Main.cpp:1:
/usr/include/c++/10/bits/stl_set.h:509:7: note: candidate: 'std::pair<typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator, bool> std::set<_Key, _Compare, _Alloc>::insert(const value_type&) [with _Key = std::array<int, 2>; _Compare = std::less<std::array<int, 2> >; _Alloc = std::allocator<std::array<int, 2> >; typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator = std::_Rb_tree<std::array<int, 2>, std::array<int, 2>, std::_Identity<std::array<int, 2> >, std::less<std::array<int, 2> >, std::allocator<std::array<int, 2> > >::const_iterator; std::set<_Key, _Compare, _Alloc>::value_type = std::array<int, 2>]'
509 | insert(const value_type& __x)
| ^~~~~~
/usr/include/c++/10/bits/stl_set.h:509:32: note: no known conversion for argument 1 from 'std::array<long long int, 2>' to 'const value_type&' {aka 'const std::array<int, 2>&'}
509 | insert(const value_type& __x)
| ~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/10/bits/stl_set.h:518:7: note: candidate: 'std::pair<typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator, bool> std::set<_Key, _Compare, _Alloc>::insert(std::set<_Key, _Compare, _Alloc>::value_type&&) [with _Key = std::array<int, 2>; _Compare = std::less<std::array<int, 2> >; _Alloc = std::allocator<std::array<int, 2> >; typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator = std::_Rb_tree<std::array<int, 2>, std::array<int, 2>, std::_Identity<std::array<int, 2> >, std::less<std::array<int, 2> >, std::allocator<std::array<int, 2> > >::const_iterator; std::set<_Key, _Compare, _Alloc>::value_type = std::array<int, 2>]'
518 | insert(value_type&& __x)
| ^~~~~~
/usr/include/c++/10/bits/stl_set.h:518:27: note: no known conversion for argument 1 from 'std::array<long long int, 2>' to 'std::set<std::array<int, 2> >::value_type&&' {aka 'std::array<int, 2>&&'}
518 | insert(value_type&& __x)
| ~~~~~~~~~~~~~^~~
/usr/include/c++/10/bits/stl_set.h:546:7: note: candidate: 'std::set<_Key, _Compare, _Alloc>::iterator std::set<_Key, _Compare, _Alloc>::insert(std::set<_Key, _Compare, _Alloc>::const_iterator, const value_type&) [with _Key = std::array<int, 2>; _Compare = std::less<std::array<int, 2> >; _Alloc = std::allocator<std::array<int, 2> >; std::set<_Key, _Compare, _Alloc>::iterator = std::_Rb_tree<std::array<int, 2>, std::array<int, 2>, std::_Identity<std::array<int, 2> >, std::less<std::array<int, 2> >, std::allocator<std::array<int, 2> > >::const_iterator; std::set<_Key, _Compare, _Alloc>::const_iterator = std::_Rb_tree<std::array<int, 2>, std::array<int, 2>, std::_Identity<std::array<int, 2> >, std::less<std::array<int, 2> >, std::allocator<std::array<int, 2> > >::const_iterator; std::set<_Key, _Compare, _Alloc>::value_type = std::array<int, 2>]'
546 | insert(const_iterator __position, const value_type& __x)
| ^~~~~~
/usr/include/c++/10/bits/stl_set.h:546:7: note: candidate expects 2 arguments, 1 provided
/usr/include/c++/10/bits/stl_set.h:551:7: note: candidate: 'std::set<_Key, _Compare, _Alloc>::iterator std::set<_Key, _Compare, _Alloc>::insert(std::set<_Key, _Compare, _Alloc>::const_iterator, std::set<_Key, _Compare, _Alloc>::value_type&&) [with _Key = std::array<int, 2>; _Compare = std::less<std::array<int, 2> >; _Alloc = std::allocator<std::array<int, 2> >; std::set<_Key, _Compare, _Alloc>::iterator = std::_Rb_tree<std::array<int, 2>, std::array<int, 2>, std::_Identity<std::array<int, 2> >, std::less<std::array<int, 2> >, std::allocator<std::array<int, 2> > >::const_iterator; std::set<_Key, _Compare, _Alloc>::const_iterator = std::_Rb_tree<std::array<int, 2>, std::array<int, 2>, std::_Identity<std::array<int, 2> >, std::less<std::array<int, 2> >, std::allocator<std::array<int, 2> > >::const_iterator; std::set<_Key, _Compare, _Alloc>::value_type = std::array<int, 2>]'
551 | insert(const_iterator __position, value_type&& __x)
| ^~~~~~
/usr/include/c++/10/bits/stl_set.h:551:7: note: candidate expects 2 arguments, 1 provided
/usr/include/c++/10/bits/stl_set.h:566:2: note: candidate: 'template<class _InputIterator> void std::set<_Key, _Compare, _Alloc>::insert(_InputIterator, _InputIterator) [with _InputIterator = _InputIterator; _Key = std::array<int, 2>; _Compare = std::less<std::array<int, 2> >; _Alloc = std::allocator<std::array<int, 2> >]'
566 | insert(_InputIterator __first, _InputIterator __last)
| ^~~~~~
/usr/include/c++/10/bits/stl_set.h:566:2: note: template argument deduction/substitution failed:
Main.cpp:93:26: note: candidate expects 2 arguments, 1 provided
93 | hs.insert(cur);
| ^
In file included from /usr/include/c++/10/set:61,
from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:87,
from Main.cpp:1:
/usr/include/c++/10/bits/stl_set.h:578:7: note: candidate: 'void std::set<_Key, _Compare, _Alloc>::insert(std::initializer_list<_Tp>) [with _Key = std::array<int, 2>; _Compare = std::less<std::array<int, 2> >; _Alloc = std::allocator<std::array<int, 2> >]'
578 | insert(initializer_list<value_type> __l)
| ^~~~~~
/usr/include/c++/10/bits/stl_set.h:578:43: note: no known conversion for argument 1 from 'std::array<long long int, 2>' to 'std::initializer_list<std::array<int, 2> >'
578 | insert(initializer_list<value_type> __l)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/10/bits/stl_set.h:598:7: note: candidate: 'std::set<_Key, _Compare, _Alloc>::insert_return_type std::set<_Key, _Compare, _Alloc>::insert(std::set<_Key, _Compare, _Alloc>::node_type&&) [with _Key = std::array<int, 2>; _Compare = std::less<std::array<int, 2> >; _Alloc = std::allocator<std::array<int, 2> >; std::set<_Key, _Compare, _Alloc>::insert_return_type = std::_Rb_tree<std::array<int, 2>, std::array<int, 2>, std::_Identity<std::array<int, 2> >, std::less<std::array<int, 2> >, std::allocator<std::array<int, 2> > >::insert_return_type; std::set<_Key, _Compare, _Alloc>::node_type = std::_Rb_tree<std::array<int, 2>, std::array<int, 2>, std::_Identity<std::array<int, 2> >, std::less<std::array<int, 2> >, std::allocator<std::array<int, 2> > >::node_type]'
598 | insert(node_type&& __nh)
| ^~~~~~
/usr/include/c++/10/bits/stl_set.h:598:26: note: no known conversion for argument 1 from 'std::array<long long int, 2>' to 'std::set<std::array<int, 2> >::node_type&&' {aka 'std::_Rb_tree<std::array<int, 2>, std::array<int, 2>, std::_Identity<std::array<int, 2> >, std::less<std::array<int, 2> >, std::allocator<std::array<int, 2> > >::node_type&&'}
598 | insert(node_type&& __nh)
| ~~~~~~~~~~~~^~~~
/usr/include/c++/10/bits/stl_set.h:603:7: note: candidate: 'std::set<_Key, _Compare, _Alloc>::iterator std::set<_Key, _Compare, _Alloc>::insert(std::set<_Key, _Compare, _Alloc>::const_iterator, std::set<_Key, _Compare, _Alloc>::node_type&&) [with _Key = std::array<int, 2>; _Compare = std::less<std::array<int, 2> >; _Alloc = std::allocator<std::array<int, 2> >; std::set<_Key, _Compare, _Alloc>::iterator = std::_Rb_tree<std::array<int, 2>, std::array<int, 2>, std::_Identity<std::array<int, 2> >, std::less<std::array<int, 2> >, std::allocator<std::array<int, 2> > >::const_iterator; std::set<_Key, _Compare, _Alloc>::const_iterator = std::_Rb_tree<std::array<int, 2>, std::array<int, 2>, std::_Identity<std::array<int, 2> >, std::less<std::array<int, 2> >, std::allocator<std::array<int, 2> > >::const_iterator; std::set<_Key, _Compare, _Alloc>::node_type = std::_Rb_tree<std::array<int, 2>, std::array<int, 2>, std::_Identity<std::array<int, 2> >, std::less<std::array<int, 2> >, std::allocator<std::array<int, 2> > >::node_type]'
603 | insert(const_iterator __hint, node_type&& __nh)
| ^~~~~~
/usr/include/c++/10/bits/stl_set.h:603:7: note: candidate expects 2 arguments, 1 provided
Main.cpp:97:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
97 | for (ll i = 0; i < s.size(); i++)
| ~~^~~~~~~~~~
Main.cpp:100:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
100 | for (ll i = 0; i < s.size(); i++)
| ~~^~~~~~~~~~
Main.cpp:112:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
112 | for (ll i = 0; i < s.size(); i++) st.set(i, rig[i]);
| ~~^~~~~~~~~~
Main.cpp:115:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
115 | for (ll i = 0; i < s.size(); i++) up[0][i] = rig[i] == i ? i : st.query(i, rig[i]).second;
| ~~^~~~~~~~~~
Main.cpp:118:26: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
118 | for (ll i = 0; i <= s.size(); i++) up[bit][i] = up[bit - 1][up[bit - 1][i]];
| ~~^~~~~~~~~~~