Submission #1267842

#TimeUsernameProblemLanguageResultExecution timeMemory
1267842usukhbaatarHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> using namespace std; using namespace __gnu_pbds; #define ff first #define ss second #define mp make_pair #define pb push_back #define heap priority_queue #define endl '\n' #define maxx(a, b) a = max(a, b) #define minn(a, b) a = min(a, b) #define all(v) v.begin(), v.end() #define rep(i, n) for (int i = 0; i < n; i++) #define rep1(i, n) for (int i = 1; i <= n; i++) #define fastio ios_base::sync_with_stdio(false); cin.tie(NULL); #define int long long typedef pair<int, int> pii; typedef vector<int> vi; typedef vector<vi> vvi; typedef vector<pii> vii; typedef vector<vii> vvii; typedef vector<bool> vb; typedef vector<vb> vvb; typedef vector<string> vs; template <class T> using indexed_set = tree<T, null_type, less<T>, rb_tree_tag,tree_order_statistics_node_update>; const int mod = 1e9 + 7; const int oo ((((1LL << 62) - 1) << 1) + 1); const int dy[] = {-1, 0, 1, 0}; const int dx[] = {0, 1, 0, -1}; int n, q; vi a; vii b; vector<array<int, 4>> queries; pii meta(int i) { return {(i << 1) + 1, (i + 1) << 1}; } tuple<int, int, int> meta(int i, int l, int r) { pii m = meta(i); return { m.ff, m.ss, (l + r) / 2 }; } vi val; void update(int i, int tl, int tr, int k, int t) { if (tl == tr) { val[i] = t; return; } auto [x, y, tm] = meta(i, tl, tr); if (k <= tm) update(x, tl, tm, k, t); else update(y, tm + 1, tr, k, t); val[i] = max(val[x], val[y]); } int query(int i, int tl, int tr, int l, int r) { if (tl == l && r == tr) return val[i]; auto [x, y, tm] = meta(i, tl, tr); if (r <= tm) return query(x, tl, tm, l, r); else if (tm + 1 <= l) return query(y, tm + 1, tr, l, r); return max(query(x, tl, tm, l, tm), query(y, tm + 1, tr, tm + 1, r)); } int32_t main() { fastio; cin >> n >> q; a.resize(n + 1); a[0] = 1e10; b.resize(n + 1); vi stk = {0}; rep1(i, n) { cin >> a[i]; while(a[stk.back()] <= a[i]) stk.pop_back(); if (stk.size() > 1) { queries.pb({-a[i] - a[stk.back()], 1, i, stk.back()}); b[i] = {a[i] + a[stk.back()], stl.back()}; } stk.pb(i); } vi ans(q); vi l(q), r(q); rep(i, q) { int k; cin >> l[i] >> r[i] >> k; for (int j = l[i]; j <= r[i]; j++) { if (b[j].ff > k && b[j].ss >= l[i]) { ans[i] = 1; break; } } queries.pb({-k, 0, i, 0}); } // sort(all(queries)); // val.resize(4 * n); // for (auto &qry : queries) { // //cout << qry[0] << ' ' << qry[1] << ' ' << qry[2] << ' ' << qry[3] << endl; // if (qry[1] == 1) update(0, 0, n - 1, qry[2] - 1, qry[3]); // else { // int id = qry[2]; // ans[id] = (query(0, 0, n - 1, l[id] - 1, r[id] - 1) >= l[id] ? 0 : 1); // } // } for (int x : ans) cout << x << endl; return 0; }

Compilation message (stderr)

sortbooks.cpp: In function 'int32_t main()':
sortbooks.cpp:75:55: error: 'stl' was not declared in this scope; did you mean 'stk'?
   75 |                         b[i] = {a[i] + a[stk.back()], stl.back()};
      |                                                       ^~~
      |                                                       stk
sortbooks.cpp:75:65: error: no match for 'operator=' (operand types are '__gnu_cxx::__alloc_traits<std::allocator<std::pair<long long int, long long int> >, std::pair<long long int, long long int> >::value_type' {aka 'std::pair<long long int, long long int>'} and '<brace-enclosed initializer list>')
   75 |                         b[i] = {a[i] + a[stk.back()], stl.back()};
      |                                                                 ^
In file included from /usr/include/c++/13/bits/stl_algobase.h:64,
                 from /usr/include/c++/13/algorithm:60,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:51,
                 from sortbooks.cpp:1:
/usr/include/c++/13/bits/stl_pair.h:439:9: note: candidate: 'template<class _U1, class _U2> constexpr std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(const std::pair<_U1, _U2>&) requires  _S_assignable<const _U1&, const _U2&>() [with _U2 = _U1; _T1 = long long int; _T2 = long long int]'
  439 |         operator=(const pair<_U1, _U2>& __p)
      |         ^~~~~~~~
/usr/include/c++/13/bits/stl_pair.h:439:9: note:   template argument deduction/substitution failed:
sortbooks.cpp:75:65: note:   couldn't deduce template parameter '_U1'
   75 |                         b[i] = {a[i] + a[stk.back()], stl.back()};
      |                                                                 ^
/usr/include/c++/13/bits/stl_pair.h:451:9: note: candidate: 'template<class _U1, class _U2> constexpr std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(std::pair<_U1, _U2>&&) requires  _S_assignable<_U1, _U2>() [with _U2 = _U1; _T1 = long long int; _T2 = long long int]'
  451 |         operator=(pair<_U1, _U2>&& __p)
      |         ^~~~~~~~
/usr/include/c++/13/bits/stl_pair.h:451:9: note:   template argument deduction/substitution failed:
sortbooks.cpp:75:65: note:   couldn't deduce template parameter '_U1'
   75 |                         b[i] = {a[i] + a[stk.back()], stl.back()};
      |                                                                 ^
/usr/include/c++/13/bits/stl_pair.h:416:7: note: candidate: 'constexpr std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(const std::pair<_T1, _T2>&) requires  _S_assignable<const _T1&, const _T2&>() [with _T1 = long long int; _T2 = long long int]'
  416 |       operator=(const pair& __p)
      |       ^~~~~~~~
/usr/include/c++/13/bits/stl_pair.h:416:29: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const std::pair<long long int, long long int>&'
  416 |       operator=(const pair& __p)
      |                 ~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/stl_pair.h:427:7: note: candidate: 'constexpr std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(std::pair<_T1, _T2>&&) requires  _S_assignable<_T1, _T2>() [with _T1 = long long int; _T2 = long long int]'
  427 |       operator=(pair&& __p)
      |       ^~~~~~~~
/usr/include/c++/13/bits/stl_pair.h:427:24: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::pair<long long int, long long int>&&'
  427 |       operator=(pair&& __p)
      |                 ~~~~~~~^~~