Submission #547754

# Submission time Handle Problem Language Result Execution time Memory
547754 2022-04-11T15:53:27 Z cig32 Bubble Sort 2 (JOI18_bubblesort2) C++17
Compilation error
0 ms 0 KB
#include "bubblesort2.h"
#include <bits/stdc++.h>
#define int long long
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/detail/standard_policies.hpp>
using namespace std;
using namespace __gnu_pbds;
typedef tree<pair<long long, long long>, null_type, less<pair<long long, long long> >, rb_tree_tag, tree_order_statistics_node_update> ordered_set;

const int lmao = 4001000;
int qwq = 1000003;
struct node {
  long long upd = 0, val = 0;
} st[lmao];
 
void u(int l, int r, int constl, int constr, int idx, long long val) {
  if(l <= constl && constr <= r) {
    st[idx].upd += val;
    st[idx].val += val;
    return;
  }
  int mid = (constl + constr) >> 1;
  st[2*idx+1].upd += st[idx].upd;
  st[2*idx+2].upd += st[idx].upd;
  st[2*idx+1].val += st[idx].upd;
  st[2*idx+2].val += st[idx].upd;
  st[idx].upd = 0;
  if(mid < l || r < constl) u(l, r, mid+1, constr, 2*idx+2, val);
  else if(constr < l || r < mid+1) u(l, r, constl, mid, 2*idx+1, val);
  else {
    u(l, r, constl, mid, 2*idx + 1, val);
    u(l, r, mid+1, constr, 2*idx + 2, val);
  }
  st[idx].val = max(st[2*idx+1].val, st[2*idx+2].val);
}
 
long long qu(int l, int r, int constl, int constr, int idx) {
  if(l <= constl && constr <= r) return st[idx].val;
  int mid = (constl + constr) >> 1;
  st[2*idx+1].upd += st[idx].upd;
  st[2*idx+2].upd += st[idx].upd;
  st[2*idx+1].val += st[idx].upd;
  st[2*idx+2].val += st[idx].upd;
  st[idx].upd = 0;
  if(mid < l || r < constl) return qu(l, r, mid+1, constr, 2*idx+2);
  else if(constr < l || r < mid+1) return qu(l, r, constl, mid, 2*idx+1);
  else {
    return max(qu(l, r, constl, mid, 2*idx+1), qu(l, r, mid+1, constr, 2*idx+2));
  }
}
 
void range_add(int l, int r, long long v) {
  u(l, r, 0, qwq, 0, v);
}
 
long long query_max(int l, int r) {
  return qu(l, r, 0, qwq, 0);
}
 
std::vector<int32_t> countScans(std::vector<int32_t> A,std::vector<int32_t> X,std::vector<int32_t> V){
  ordered_set ost;
  int N=A.size();
	int Q=X.size();
	std::vector<int32_t> answer(Q);
  set<int> s;
  for(int i=0; i<N; i++) {
    s.insert(A[i]);
  }
  for(int i=0; i<Q; i++) s.insert(V[i]);
  map<int, int> is;
  int nxt = 0;
  for(int x: s) {
    is[x] = nxt++;
  }
  for(int i=0; i<N; i++) A[i] = is[A[i]];
  for(int i=0; i<Q; i++) V[i] = is[V[i]];
  for(int i=0; i<N; i++) ost.insert({A[i], i});
  pair<int, int> B[N];
  for(int i=0; i<N; i++) {
    B[i] = {A[i], i};
  }
  sort(B, B+N);
  multiset<pair<long long, long long> > ms[N+Q];
  map<long long, long long> ono[N+Q];
  for(int i=0; i<N; i++) {
    ms[B[i].first].insert({B[i].second - i, B[i].second});
    ono[B[i].first][B[i].second] = B[i].second - i;
  }
  for(int i=0; i<N+Q; i++) {
    if(ms[i].empty()) {
      range_add(i, i, -1e10);
    }
    else {
      range_add(i, i, (*ms[i].rbegin()).first);
    }
  }
  for(int i=0; i<Q; i++) { 
    int x = A[X[i]];
    int y = V[i];
    if(A[X[i]] == V[i]) {
      answer[i] = query_max(0, N+Q - 1);
      continue;
    }
    if(x > y) swap(x, y);
    if(x + 1 < y) {
      if(A[X[i]] > V[i]) {
        range_add(x+1, y-1, -1);
      }
      else {
        range_add(x+1, y-1, 1);
      }
    }
    x = A[X[i]];
    y = V[i];
    int one = ms[x].size();
    ms[x].erase({ono[x][X[i]], X[i]});
    int two = ms[x].size();
    assert(one != two);
    if(ms[x].size()) {
      long long ogname = query_max(x, x);
      long long q = (*ms[x].rbegin()).second;
      ost.erase({x, X[i]});
      ost.insert({y, X[i]});
      range_add(x, x, q - (int)ost.order_of_key({A[q], q}) - ogname);
      //cout << "tar " << q - (int)ost.order_of_key({A[q], q}) << "\n";
      ost.erase({y, X[i]});
    }
    else {
    //  cout << "rip :rofl:\n";
      ost.erase({x, X[i]});
      long long ogname = query_max(x, x);
      range_add(x, x, -1e10 - ogname); // res = -1e17
    }
    ost.insert({y, X[i]});
    A[X[i]] = V[i];
    ms[y].insert({X[i] - (int)ost.order_of_key({V[i], X[i]}), X[i]});
    ono[y][X[i]] = X[i] - (int)ost.order_of_key({V[i], X[i]});
   // cout << X[i] << " " << (int)ost.order_of_key({V[i], X[i]}) << " " << X[i] - (int)ost.order_of_key({V[i], X[i]}) << " g\n";
    long long q = (*ms[y].rbegin()).second;
    long long ogname = query_max(V[i], V[i]);
    range_add(V[i], V[i], q - (int)ost.order_of_key({A[q], q}) - ogname);
    answer[i] = query_max(0, N + Q - 1);
    /*
    pair<int, int> B[N];
    for(int j=0; j<N; j++) B[j] = {A[j], j};
    sort(B, B+N);
    int expected = 0;
    for(int j=0; j<N; j++) expected = max(expected, B[j].second - j);
    if(expected != answer[i]) {
      cout << "fuck!!\n";
    //  cout << "query "<<i<<": expected "<<expected<<" found "<<answer[i]<<"\n";
    }
    // for(int j=0; j<N+Q; j++) cout << (query_max(j, j) < -1e15 ? "q" : to_string(query_max(j, j))) << " ";
    //  cout << "\n";
    */
  }
  
	return answer;
}

Compilation message

In file included from /usr/include/c++/10/ext/pb_ds/detail/type_utils.hpp:47,
                 from /usr/include/c++/10/ext/pb_ds/tag_and_trait.hpp:46,
                 from /usr/include/c++/10/ext/pb_ds/assoc_container.hpp:46,
                 from bubblesort2.cpp:4:
/usr/include/c++/10/tr1/type_traits:121:3: error: redefinition of 'struct std::tr1::__is_integral_helper<long long int>'
  121 |   _DEFINE_SPEC(0, __is_integral_helper, long long, true)
      |   ^~~~~~~~~~~~
/usr/include/c++/10/tr1/type_traits:117:3: note: previous definition of 'struct std::tr1::__is_integral_helper<long long int>'
  117 |   _DEFINE_SPEC(0, __is_integral_helper, int, true)
      |   ^~~~~~~~~~~~
/usr/include/c++/10/tr1/type_traits:122:3: error: redefinition of 'struct std::tr1::__is_integral_helper<long long unsigned int>'
  122 |   _DEFINE_SPEC(0, __is_integral_helper, unsigned long long, true)
      |   ^~~~~~~~~~~~
/usr/include/c++/10/tr1/type_traits:118:3: note: previous definition of 'struct std::tr1::__is_integral_helper<long long unsigned int>'
  118 |   _DEFINE_SPEC(0, __is_integral_helper, unsigned int, true)
      |   ^~~~~~~~~~~~
/usr/include/c++/10/tr1/type_traits:549:3: error: redefinition of 'struct std::tr1::__is_signed_helper<long long int>'
  549 |   _DEFINE_SPEC(0, __is_signed_helper, long long, true)
      |   ^~~~~~~~~~~~
/usr/include/c++/10/tr1/type_traits:547:3: note: previous definition of 'struct std::tr1::__is_signed_helper<long long int>'
  547 |   _DEFINE_SPEC(0, __is_signed_helper, int, true)
      |   ^~~~~~~~~~~~
/usr/include/c++/10/tr1/type_traits:564:3: error: redefinition of 'struct std::tr1::__is_unsigned_helper<long long unsigned int>'
  564 |   _DEFINE_SPEC(0, __is_unsigned_helper, unsigned long long, true)
      |   ^~~~~~~~~~~~
/usr/include/c++/10/tr1/type_traits:562:3: note: previous definition of 'struct std::tr1::__is_unsigned_helper<long long unsigned int>'
  562 |   _DEFINE_SPEC(0, __is_unsigned_helper, unsigned int, true)
      |   ^~~~~~~~~~~~
In file included from /usr/include/c++/10/tr1/functional:42,
                 from /usr/include/c++/10/ext/pb_ds/detail/standard_policies.hpp:51,
                 from /usr/include/c++/10/ext/pb_ds/assoc_container.hpp:47,
                 from bubblesort2.cpp:4:
/usr/include/c++/10/tr1/functional_hash.h:75:3: error: redefinition of 'std::size_t std::tr1::hash<_Tp>::operator()(_Tp) const [with _Tp = long long int; std::size_t = long unsigned int]'
   75 |   _TR1_hashtable_define_trivial_hash(long long);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/10/tr1/functional_hash.h:73:3: note: 'std::size_t std::tr1::hash<_Tp>::operator()(_Tp) const [with _Tp = long long int; std::size_t = long unsigned int]' previously declared here
   73 |   _TR1_hashtable_define_trivial_hash(int);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/10/tr1/functional_hash.h:79:3: error: redefinition of 'std::size_t std::tr1::hash<_Tp>::operator()(_Tp) const [with _Tp = long long unsigned int; std::size_t = long unsigned int]'
   79 |   _TR1_hashtable_define_trivial_hash(unsigned long long);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/10/tr1/functional_hash.h:77:3: note: 'std::size_t std::tr1::hash<_Tp>::operator()(_Tp) const [with _Tp = long long unsigned int; std::size_t = long unsigned int]' previously declared here
   77 |   _TR1_hashtable_define_trivial_hash(unsigned int);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included 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 bubblesort2.cpp:2:
/usr/include/c++/10/functional:209:16: error: template parameter 'int _Num'
  209 |   template<int _Num> struct _Placeholder { };
      |                ^~~~
In file included from /usr/include/c++/10/ext/pb_ds/detail/standard_policies.hpp:51,
                 from /usr/include/c++/10/ext/pb_ds/assoc_container.hpp:47,
                 from bubblesort2.cpp:4:
/usr/include/c++/10/tr1/functional:53:24: note: redeclared here as 'long long int <anonymous>'
   53 |   template<int> struct _Placeholder;
      |                        ^~~~~~~~~~~~
In file included from /usr/include/c++/10/ext/pb_ds/detail/bin_search_tree_/traits.hpp:44,
                 from /usr/include/c++/10/ext/pb_ds/detail/branch_policy/traits.hpp:45,
                 from /usr/include/c++/10/ext/pb_ds/assoc_container.hpp:49,
                 from bubblesort2.cpp:4:
/usr/include/c++/10/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp: In instantiation of 'class __gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*, std::pair<long long int, long long int>, std::pair<long long int, long long int>*, const std::pair<long long int, long long int>*, std::pair<long long int, long long int>&, const std::pair<long long int, long long int>&, true, std::allocator<char> >':
/usr/include/c++/10/bits/stl_iterator_base_types.h:177:12:   recursively required by substitution of 'template<class _Iterator> struct std::__iterator_traits<_Iterator, std::__void_t<typename _Iterator::iterator_category, typename _Iterator::value_type, typename _Iterator::difference_type, typename _Iterator::pointer, typename _Iterator::reference> > [with _Iterator = __gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*, std::pair<long long int, long long int>, std::pair<long long int, long long int>*, const std::pair<long long int, long long int>*, std::pair<long long int, long long int>&, const std::pair<long long int, long long int>&, true, std::allocator<char> >]'
/usr/include/c++/10/bits/stl_iterator_base_types.h:177:12:   required from 'struct std::iterator_traits<__gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*, std::pair<long long int, long long int>, std::pair<long long int, long long int>*, const std::pair<long long int, long long int>*, std::pair<long long int, long long int>&, const std::pair<long long int, long long int>&, true, std::allocator<char> > >'
/usr/include/c++/10/ext/pb_ds/detail/branch_policy/branch_policy.hpp:93:68:   required from 'struct __gnu_pbds::detail::branch_policy<__gnu_pbds::detail::bin_search_tree_const_node_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >, __gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*, std::pair<long long int, long long int>, std::pair<long long int, long long int>*, const std::pair<long long int, long long int>*, std::pair<long long int, long long int>&, const std::pair<long long int, long long int>&, true, std::allocator<char> >, __gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*, std::pair<long long int, long long int>, std::pair<long long int, long long int>*, const std::pair<long long int, long long int>*, std::pair<long long int, long long int>&, const std::pair<long long int, long long int>&, true, std::allocator<char> >, std::allocator<char> >, __gnu_pbds::detail::bin_search_tree_const_node_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >, __gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*, std::pair<long long int, long long int>, std::pair<long long int, long long int>*, const std::pair<long long int, long long int>*, std::pair<long long int, long long int>&, const std::pair<long long int, long long int>&, true, std::allocator<char> >, __gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*, std::pair<long long int, long long int>, std::pair<long long int, long long int>*, const std::pair<long long int, long long int>*, std::pair<long long int, long long int>&, const std::pair<long long int, long long int>&, true, std::allocator<char> >, std::allocator<char> >, std::allocator<char> >'
/usr/include/c++/10/ext/pb_ds/tree_policy.hpp:64:9:   required from 'class __gnu_pbds::tree_order_statistics_node_update<__gnu_pbds::detail::bin_search_tree_const_node_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >, __gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*, std::pair<long long int, long long int>, std::pair<long long int, long long int>*, const std::pair<long long int, long long int>*, std::pair<long long int, long long int>&, const std::pair<long long int, long long int>&, true, std::allocator<char> >, __gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*, std::pair<long long int, long long int>, std::pair<long long int, long long int>*, const std::pair<long long int, long long int>*, std::pair<long long int, long long int>&, const std::pair<long long int, long long int>&, true, std::allocator<char> >, std::allocator<char> >, __gnu_pbds::detail::bin_search_tree_const_node_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >, __gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*, std::pair<long long int, long long int>, std::pair<long long int, long long int>*, const std::pair<long long int, long long int>*, std::pair<long long int, long long int>&, const std::pair<long long int, long long int>&, true, std::allocator<char> >, __gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*, std::pair<long long int, long long int>, std::pair<long long int, long long int>*, const std::pair<long long int, long long int>*, std::pair<long long int, long long int>&, const std::pair<long long int, long long int>&, true, std::allocator<char> >, std::allocator<char> >, std::less<std::pair<long long int, long long int> >, std::allocator<char> >'
/usr/include/c++/10/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp:99:11:   required from 'class __gnu_pbds::detail::bin_search_tree_set<std::pair<long long int, long long int>, __gnu_pbds::null_type, std::less<std::pair<long long int, long long int> >, __gnu_pbds::detail::tree_traits<std::pair<long long int, long long int>, __gnu_pbds::null_type, std::less<std::pair<long long int, long long int> >, __gnu_pbds::tree_order_statistics_node_update, __gnu_pbds::rb_tree_tag, std::allocator<char> >, std::allocator<char> >'
/usr/include/c++/10/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp:84:11:   required from 'class __gnu_pbds::detail::rb_tree_set<std::pair<long long int, long long int>, __gnu_pbds::null_type, std::less<std::pair<long long int, long long int> >, __gnu_pbds::detail::tree_traits<std::pair<long long int, long long int>, __gnu_pbds::null_type, std::less<std::pair<long long int, long long int> >, __gnu_pbds::tree_order_statistics_node_update, __gnu_pbds::rb_tree_tag, std::allocator<char> >, std::allocator<char> >'
/usr/include/c++/10/ext/pb_ds/assoc_container.hpp:555:9:   required from 'class __gnu_pbds::basic_branch<std::pair<long long int, long long int>, __gnu_pbds::null_type, __gnu_pbds::rb_tree_tag, __gnu_pbds::tree_order_statistics_node_update<__gnu_pbds::detail::bin_search_tree_const_node_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >, __gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*, std::pair<long long int, long long int>, std::pair<long long int, long long int>*, const std::pair<long long int, long long int>*, std::pair<long long int, long long int>&, const std::pair<long long int, long long int>&, true, std::allocator<char> >, __gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*, std::pair<long long int, long long int>, std::pair<long long int, long long int>*, const std::pair<long long int, long long int>*, std::pair<long long int, long long int>&, const std::pair<long long int, long long int>&, true, std::allocator<char> >, std::allocator<char> >, __gnu_pbds::detail::bin_search_tree_const_node_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >, __gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*, std::pair<long long int, long long int>, std::pair<long long int, long long int>*, const std::pair<long long int, long long int>*, std::pair<long long int, long long int>&, const std::pair<long long int, long long int>&, true, std::allocator<char> >, __gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*, std::pair<long long int, long long int>, std::pair<long long int, long long int>*, const std::pair<long long int, long long int>*, std::pair<long long int, long long int>&, const std::pair<long long int, long long int>&, true, std::allocator<char> >, std::allocator<char> >, std::less<std::pair<long long int, long long int> >, std::allocator<char> >, __gnu_cxx::typelist::node<__gnu_cxx::typelist::chain<std::less<std::pair<long long int, long long int> >, __gnu_cxx::typelist::chain<__gnu_pbds::detail::tree_traits<std::pair<long long int, long long int>, __gnu_pbds::null_type, std::less<std::pair<long long int, long long int> >, __gnu_pbds::tree_order_statistics_node_update, __gnu_pbds::rb_tree_tag, std::allocator<char> >, __gnu_cxx::typelist::null_type> > >, std::allocator<char> >'
/usr/include/c++/10/ext/pb_ds/assoc_container.hpp:635:9:   required from 'class __gnu_pbds::tree<std::pair<long long int, long long int>, __gnu_pbds::null_type, std::less<std::pair<long long int, long long int> >, __gnu_pbds::rb_tree_tag, __gnu_pbds::tree_order_statistics_node_update>'
bubblesort2.cpp:62:15:   required from here
/usr/include/c++/10/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp:181:7: error: postfix '__gnu_pbds::detail::bin_search_tree_const_it_<Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_Forward_Iterator, _Alloc> __gnu_pbds::detail::bin_search_tree_const_it_<Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_Forward_Iterator, _Alloc>::operator++(long long int) [with Node_Pointer = __gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*; Value_Type = std::pair<long long int, long long int>; Pointer = std::pair<long long int, long long int>*; Const_Pointer = const std::pair<long long int, long long int>*; Reference = std::pair<long long int, long long int>&; Const_Reference = const std::pair<long long int, long long int>&; bool Is_Forward_Iterator = true; _Alloc = std::allocator<char>]' must have 'int' as its argument
  181 |       operator++(int)
      |       ^~~~~~~~
/usr/include/c++/10/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp:196:7: error: postfix '__gnu_pbds::detail::bin_search_tree_const_it_<Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_Forward_Iterator, _Alloc> __gnu_pbds::detail::bin_search_tree_const_it_<Node_Pointer, Value_Type, Pointer, Const_Pointer, Reference, Const_Reference, Is_Forward_Iterator, _Alloc>::operator--(long long int) [with Node_Pointer = __gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*; Value_Type = std::pair<long long int, long long int>; Pointer = std::pair<long long int, long long int>*; Const_Pointer = const std::pair<long long int, long long int>*; Reference = std::pair<long long int, long long int>&; Const_Reference = const std::pair<long long int, long long int>&; bool Is_Forward_Iterator = true; _Alloc = std::allocator<char>]' must have 'int' as its argument
  196 |       operator--(int)
      |       ^~~~~~~~
/usr/include/c++/10/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp: In instantiation of 'class __gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*, std::pair<long long int, long long int>, std::pair<long long int, long long int>*, const std::pair<long long int, long long int>*, std::pair<long long int, long long int>&, const std::pair<long long int, long long int>&, false, std::allocator<char> >':
/usr/include/c++/10/type_traits:1085:30:   required from 'struct std::__is_copy_assignable_impl<__gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*, std::pair<long long int, long long int>, std::pair<long long int, long long int>*, const std::pair<long long int, long long int>*, std::pair<long long int, long long int>&, const std::pair<long long int, long long int>&, true, std::allocator<char> >, true>'
/usr/include/c++/10/type_traits:1090:12:   required from 'struct std::is_copy_assignable<__gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*, std::pair<long long int, long long int>, std::pair<long long int, long long int>*, const std::pair<long long int, long long int>*, std::pair<long long int, long long int>&, const std::pair<long long int, long long int>&, true, std::allocator<char> > >'
/usr/include/c++/10/type_traits:138:12:   required from 'struct std::__and_<std::is_copy_assignable<__gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*, std::pair<long long int, long long int>, std::pair<long long int, long long int>*, const std::pair<long long int, long long int>*, std::pair<long long int, long long int>&, const std::pair<long long int, long long int>&, true, std::allocator<char> > >, std::is_copy_assignable<bool> >'
/usr/include/c++/10/bits/stl_pair.h:390:7:   required from 'struct std::pair<__gnu_pbds::detail::bin_search_tree_const_it_<__gnu_pbds::detail::rb_tree_node_<std::pair<long long int, long long int>, long unsigned int, std::allocator<char> >*, std::pair<long long int, long long int>, std::pair<long long int, long long int>*, const std::pair<long long int, long long int>*, std::pair<long long int, long long int>&, const std::pair<long long int, long long int>&, true, std::allocator<char> >, bool>'
bubblesort2.cpp:78:46:   required from here
/usr/include/c++/10/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp:181:7: error: postfix '__gnu_pbds::detail::bin_search_tree_const_it_<No