Submission #813184

#TimeUsernameProblemLanguageResultExecution timeMemory
813184SlavicGBubble Sort 2 (JOI18_bubblesort2)C++17
Compilation error
0 ms0 KiB
#include "bubblesort2.h" #include <bits/stdc++.h> using namespace std; #define ll int64_t const ll inf = 1e9; const int N = 4e6 + 5; ll t[4 * N], lazy[4 * N]; void push(int i, int l, int r) { if(!lazy[i]) return; t[i] += lazy[i]; if(l != r) { lazy[2 * i] += lazy[i]; lazy[2 * i + 1] += lazy[i]; } lazy[i] = 0; } void modif(int i, int l, int r, int tl, int tr, ll val) { push(i, l, r); if(l > tr || r < tl) return; if(l >= tl && r <= tr) { lazy[i] += val; push(i, l,r); return; } int mid = l + r >> 1; modif(2 * i, l, mid, tl, tr, val); modif(2 * i + 1, mid + 1, r, tl, tr, val); t[i] = max(t[2 * i], t[2 * i + 1]); } std::vector<int> countScans(vector<int> a, vector<int> X, vector<int> V){ int n = a.size(); int q = X.size(); vector<int> ans(q); //compresam coordonatele si ne asiguram sa nu avem duplicate vector<ll> vals; for(int i = 0; i < n; ++i) { vals.push_back(inf * (ll)a[i] + i); } for(int k = 0; k < q; ++k) { int i = X[k]; ll newval = inf * V[k] + i; vals.push_back(newval); } sort(vals.begin(), vals.end()); vals.erase(unique(vals.begin(), vals.end()), vals.end()); for(int i = 0; i < n; ++i) { a[i] = lower_bound(vals.begin(), vals.end(), (ll)a[i] * (ll)inf + i) - vals.begin(); } for(int k = 0; k < q; ++k) { int i = X[k]; ll newval = inf * (ll)V[k] + i; V[k] = lower_bound(vals.begin(), vals.end(), newval) - vals.begin(); } //acum rezolvam problema dupa ce am compresat tot for(int i = 0; i < N; ++i) modif(1, 0, N - 1, i, i, -inf); for(int i = 0; i < n; ++i) { modif(1, 0, N - 1, a[i], a[i], inf + i); } for(int i = 0; i < n; ++i) { modif(1, 0, N - 1, a[i] + 1, N - 1, -1); } for(int k = 0; k < q; ++k) { int i = X[k], newval = V[k]; modif(1, 0, N - 1, a[i] + 1, N - 1, +1); modif(1, 0, N - 1, a[i], a[i], -2 * inf - i); a[i] = newval; modif(1, 0, N - 1, a[i], a[i], inf + i); modif(1, 0, N - 1, a[i] + 1, N - 1, -1); push(1, 0, N - 1); ans[k] = max(0LL, t[1]); } return ans; } /* 4 2 1 2 3 4 0 3 2 1 */

Compilation message (stderr)

bubblesort2.cpp: In function 'void modif(int, int, int, int, int, int64_t)':
bubblesort2.cpp:27:14: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   27 |  int mid = l + r >> 1;
      |            ~~^~~
bubblesort2.cpp: In function 'std::vector<int> countScans(std::vector<int>, std::vector<int>, std::vector<int>)':
bubblesort2.cpp:75:25: error: no matching function for call to 'max(long long int, int64_t&)'
   75 |   ans[k] = max(0LL, t[1]);
      |                         ^
In file included from /usr/include/c++/10/vector:60,
                 from bubblesort2.h:1,
                 from bubblesort2.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:254:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  254 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:254:5: note:   template argument deduction/substitution failed:
bubblesort2.cpp:75:25: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int64_t' {aka 'long int'})
   75 |   ans[k] = max(0LL, t[1]);
      |                         ^
In file included from /usr/include/c++/10/vector:60,
                 from bubblesort2.h:1,
                 from bubblesort2.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:300:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  300 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:300:5: note:   template argument deduction/substitution failed:
bubblesort2.cpp:75:25: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int64_t' {aka 'long int'})
   75 |   ans[k] = max(0LL, t[1]);
      |                         ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from bubblesort2.cpp:2:
/usr/include/c++/10/bits/stl_algo.h:3480:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)'
 3480 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3480:5: note:   template argument deduction/substitution failed:
bubblesort2.cpp:75:25: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   75 |   ans[k] = max(0LL, t[1]);
      |                         ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from bubblesort2.cpp:2:
/usr/include/c++/10/bits/stl_algo.h:3486:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)'
 3486 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3486:5: note:   template argument deduction/substitution failed:
bubblesort2.cpp:75:25: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   75 |   ans[k] = max(0LL, t[1]);
      |                         ^