Submission #1148046

#TimeUsernameProblemLanguageResultExecution timeMemory
1148046gulmixArranging Shoes (IOI19_shoes)C++20
Compilation error
0 ms0 KiB
#include "shoes.h" #include<bits/stdc++.h> #include<ext/pb_ds/assoc_container.hpp> #include<ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; using namespace std; using ll = long long; #define all(x) x.begin(), x.end() #define oset tree<ll, null_type, less<ll>, rb_tree_tag, tree_order_statistics_node_update> struct BIT{ vector<ll> bit; ll n; BIT(){} BIT(ll n): n(n){ bit.resize(n + 1, 0); } void update(ll u, ll x){ for(u; u <= n; u += (u & -u))bit[u]+=x; } ll get(ll u){ ll ans = 0; for(u; u > 0; u -= (u & -u))ans += bit[u]; return ans; } ll get(ll l, ll r){ return get(r) - get(l-1); } }; vector<ll> d[200007]; vector<ll> l[200007], r[200007]; bool cmp(vector<ll> a, vector<l> b) { return min(a[0], a[1]) < min(b[0], b[1]); } ll count_swaps(vector<l> s) { for(int i = 0; i < s.size(); i++) { if(s[i] < 0) { l[-s[i]].push_back(i + 1); } else { r[s[i]].push_back(i + 1); } } ll n = s.size() / 2; ll c = 0; for(int i = 1; i <= n; i++) { for(int j = 0; j < l[i].size(); j++) { d[++c].push_back(r[i][j]); d[c].push_back(l[i][j]); } } sort(d + 1, d + c + 1, cmp); BIT bit = BIT(s.size() + 1); ll ans = 0; for(int i = 1; i <= c; i++) { for(int j = 1; j >= 0; j--) { ll pos = i * 2 - j; ll sus = d[i][j] + bit.get(d[i][j] + 1, s.size()); bit.update(d[i][j], 1); ans += abs(sus - pos); } } return ans; }

Compilation message (stderr)

shoes.cpp:34:32: error: type/value mismatch at argument 1 in template parameter list for 'template<class _Tp, class _Alloc> class std::vector'
   34 | bool cmp(vector<ll> a, vector<l> b) {
      |                                ^
shoes.cpp:34:32: note:   expected a type, got 'l'
shoes.cpp:34:32: error: template argument 2 is invalid
shoes.cpp: In function 'bool cmp(std::vector<long long int>, int)':
shoes.cpp:35:35: error: invalid types 'int[int]' for array subscript
   35 |     return min(a[0], a[1]) < min(b[0], b[1]);
      |                                   ^
shoes.cpp:35:41: error: invalid types 'int[int]' for array subscript
   35 |     return min(a[0], a[1]) < min(b[0], b[1]);
      |                                         ^
shoes.cpp: At global scope:
shoes.cpp:38:24: error: type/value mismatch at argument 1 in template parameter list for 'template<class _Tp, class _Alloc> class std::vector'
   38 | ll count_swaps(vector<l> s) {
      |                        ^
shoes.cpp:38:24: note:   expected a type, got 'l'
shoes.cpp:38:24: error: template argument 2 is invalid
shoes.cpp: In function 'll count_swaps(int)':
shoes.cpp:39:26: error: request for member 'size' in 's', which is of non-class type 'int'
   39 |     for(int i = 0; i < s.size(); i++) {
      |                          ^~~~
shoes.cpp:40:13: error: invalid types 'int[int]' for array subscript
   40 |         if(s[i] < 0) {
      |             ^
shoes.cpp:41:17: error: invalid types 'int[int]' for array subscript
   41 |             l[-s[i]].push_back(i + 1);
      |                 ^
shoes.cpp:43:16: error: invalid types 'int[int]' for array subscript
   43 |             r[s[i]].push_back(i + 1);
      |                ^
shoes.cpp:46:14: error: request for member 'size' in 's', which is of non-class type 'int'
   46 |     ll n = s.size() / 2;
      |              ^~~~
shoes.cpp:55:21: error: request for member 'size' in 's', which is of non-class type 'int'
   55 |     BIT bit = BIT(s.size() + 1);
      |                     ^~~~
shoes.cpp:60:55: error: request for member 'size' in 's', which is of non-class type 'int'
   60 |             ll sus = d[i][j] + bit.get(d[i][j] + 1, s.size());
      |                                                       ^~~~
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
                 from /usr/include/c++/11/vector:60,
                 from shoes.h:5,
                 from shoes.cpp:1:
/usr/include/c++/11/bits/predefined_ops.h: In instantiation of 'constexpr bool __gnu_cxx::__ops::_Iter_comp_iter<_Compare>::operator()(_Iterator1, _Iterator2) [with _Iterator1 = std::vector<long long int>*; _Iterator2 = std::vector<long long int>*; _Compare = bool (*)(std::vector<long long int>, int)]':
/usr/include/c++/11/bits/stl_algo.h:1884:17:   required from 'constexpr _RandomAccessIterator std::__unguarded_partition(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = std::vector<long long int>*; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(std::vector<long long int>, int)>]'
/usr/include/c++/11/bits/stl_algo.h:1906:40:   required from 'constexpr _RandomAccessIterator std::__unguarded_partition_pivot(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = std::vector<long long int>*; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(std::vector<long long int>, int)>]'
/usr/include/c++/11/bits/stl_algo.h:1938:38:   required from 'constexpr void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = std::vector<long long int>*; _Size = long int; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(std::vector<long long int>, int)>]'
/usr/include/c++/11/bits/stl_algo.h:1954:25:   required from 'constexpr void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = std::vector<long long int>*; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(std::vector<long long int>, int)>]'
/usr/include/c++/11/bits/stl_algo.h:4875:18:   required from 'constexpr void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = std::vector<long long int>*; _Compare = bool (*)(std::vector<long long int>, int)]'
shoes.cpp:54:9:   required from here
/usr/include/c++/11/bits/predefined_ops.h:158:30: error: cannot convert 'std::vector<long long int>' to 'int' in argument passing
  158 |         { return bool(_M_comp(*__it1, *__it2)); }
      |                       ~~~~~~~^~~~~~~~~~~~~~~~
/usr/include/c++/11/bits/predefined_ops.h: In instantiation of 'constexpr bool __gnu_cxx::__ops::_Val_comp_iter<_Compare>::operator()(_Value&, _Iterator) [with _Value = std::vector<long long int>; _Iterator = std::vector<long long int>*; _Compare = bool (*)(std::vector<long long int>, int)]':
/usr/include/c++/11/bits/stl_algo.h:1806:20:   required from 'constexpr void std::__unguarded_linear_insert(_RandomAccessIterator, _Compare) [with _RandomAccessIterator = std::vector<long long int>*; _Compare = __gnu_cxx::__ops::_Val_comp_iter<bool (*)(std::vector<long long int>, int)>]'
/usr/include/c++/11/bits/stl_algo.h:1834:36:   required from 'constexpr void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = std::vector<long long int>*; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(std::vector<long long int>, int)>]'
/usr/include/c++/11/bits/stl_algo.h:1866:25:   required from 'constexpr void std::__final_insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = std::vector<long long int>*; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(std::vector<long long int>, int)>]'
/usr/include/c++/11/bits/stl_algo.h:1957:31:   required from 'constexpr void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = std::vector<long long int>*; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(std::vector<long long int>, int)>]'
/usr/include/c++/11/bits/stl_algo.h:4875:18:   required from 'constexpr void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = std::vector<long long int>*; _Compare = bool (*)(std::vector<long long int>, int)]'
shoes.cpp:54:9:   required from here
/usr/include/c++/11/bits/predefined_ops.h:240:30: error: cannot convert 'std::vector<long long int>' to 'int' in argument passing
  240 |         { return bool(_M_comp(__val, *__it)); }
      |                       ~~~~~~~^~~~~~~~~~~~~~
/usr/include/c++/11/bits/predefined_ops.h: In instantiation of 'constexpr bool __gnu_cxx::__ops::_Iter_comp_val<_Compare>::operator()(_Iterator, _Value&) [with _Iterator = std::vector<long long int>*; _Value = std::vector<long long int>; _Compare = bool (*)(std::vector<long long int>, int)]':
/usr/include/c++/11/bits/stl_heap.h:139:48:   required from 'constexpr void std::__push_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare&) [with _RandomAccessIterator = std::vector<long long int>*; _Distance = long int; _Tp = std::vector<long long int>; _Compare = __gnu_cxx::__ops::_Iter_comp_val<bool (*)(std::vector<long long int>, int)>]'
/usr/include/c++/11/bits/stl_heap.h:246:23:   required from 'constexpr void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = std::vector<long long int>*; _Distance = long int; _Tp = std::vector<long long int>; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(std::vector<long long int>, int)>]'
/usr/include/c++/11/bits/stl_heap.h:355:22:   required from 'constexpr void std::__make_heap(_RandomAccessIterator, _RandomAccessIterator, _Compare&) [with _RandomAccessIterator = std::vector<long long int>*; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(std::vector<long long int>, int)>]'
/usr/include/c++/11/bits/stl_algo.h:1646:23:   required from 'constexpr void std::__heap_select(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = std::vector<long long int>*; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(std::vector<long long int>, int)>]'
/usr/include/c++/11/bits/stl_algo.h:1917:25:   required from 'constexpr void std::__partial_sort(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = std::vector<long long int>*; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(std::vector<long long int>, int)>]'
/usr/include/c++/11/bits/stl_algo.h:1933:27:   required from 'constexpr void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = std::vector<long long int>*; _Size = long int; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(std::vector<long long int>, int)>]'
/usr/include/c++/11/bits/stl_algo.h:1954:25:   required from 'constexpr void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = std::vector<long long int>*; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(std::vector<long long int>, int)>]'
/usr/include/c++/11/bits/stl_algo.h:4875:18:   required from 'constexpr void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = std::vector<long long int>*; _Compare = bool (*)(std::vector<long long int>, int)]'
shoes.cpp:54:9:   required from here
/usr/include/c++/11/bits/predefined_ops.h:196:30: error: cannot convert 'std::vector<long long int>' to 'int' in argument passing
  196 |         { return bool(_M_comp(*__it, __val)); }
      |                       ~~~~~~~^~~~~~~~~~~~~~