Submission #1335920

#TimeUsernameProblemLanguageResultExecution timeMemory
1335920gelastropodHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++20
Compilation error
0 ms0 KiB
#pragma GCC optimize("O3,inline")
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
gp_hash_table<int, int> idxs;
using namespace std;
#define int long long

vector<int> W, die;

struct node {
	int s, e, m, v;
	node* l, * r;

	node(int _s, int _e) : s(_s), e(_e), m((_s + _e) / 2) {
		if (s == e) v = W[s];
		else {
			l = new node(s, m), r = new node(m + 1, e);
			v = min(l->v, r->v);
		}
	}

	int qry(int a, int b) {
		if (b < s || a > e) return INT_MAX;
		if (a <= s && b >= e) return v;
		return min(l->qry(a, b), r->qry(a, b));
	}
} *root;

signed main() {
	ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	int N, M, a, b, c; cin >> N >> M;
	vector<pair<int, int>> vals;
	for (int i = 0; i < N; i++) {
		cin >> a;
		W.push_back(a);
		if (i > 0 && W[i] < W[i - 1]) die.push_back(i - 1);
		vals.push_back({ a, i });
	}
	sort(vals.begin(), vals.end(), greater<pair<int, int>>());
	root = new node(0, N - 1);
	vector<pair<pair<int, int>, pair<int, int>>> quers;
	for (int i = 0; i < M; i++) {
		cin >> a >> b >> c; a--, b--;
		quers.push_back({ {c - root->qry(a, b), i}, {a, b} });
	}
	sort(quers.begin(), quers.end(), greater<pair<pair<int, int>, pair<int, int>>>());
	auto iter = vals.begin();
	vector<int> died(M, 0);
	for (int i = 0; i < M; i++) {
		while (iter != vals.end() && iter->first > quers[i].first.first) {
			idxs.insert(iter->second);
			iter++;
		}
		auto iter1 = idxs.lower_bound(quers[i].second.first);
		if (iter1 == idxs.end() || *iter1 > quers[i].second.second) continue;
		if (lower_bound(die.begin(), die.end(), *iter1) == lower_bound(die.begin(), die.end(), quers[i].second.second)) continue;
		died[quers[i].first.second] = 1;
	}
	for (int i : died) cout << 1 - i << '\n';
}

Compilation message (stderr)

sortbooks.cpp: In function 'int main()':
sortbooks.cpp:52:43: error: cannot convert 'long long int' to '__gnu_pbds::detail::gp_ht_map<int, int, std::tr1::hash<int>, std::equal_to<int>, std::allocator<char>, false, __gnu_pbds::direct_mask_range_hashing<>, __gnu_pbds::linear_probe_fn<long unsigned int>, __gnu_pbds::hash_standard_resize_policy<__gnu_pbds::hash_exponential_size_policy<>, __gnu_pbds::hash_load_check_resize_trigger<>, false, long unsigned int> >::const_reference' {aka 'const std::pair<const int, int>&'}
   52 |                         idxs.insert(iter->second);
      |                                     ~~~~~~^~~~~~
      |                                           |
      |                                           long long int
In file included from /usr/include/c++/13/ext/pb_ds/detail/container_base_dispatch.hpp:72,
                 from /usr/include/c++/13/ext/pb_ds/assoc_container.hpp:48,
                 from sortbooks.cpp:3:
/usr/include/c++/13/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp:327:30: note:   initializing argument 1 of 'std::pair<__gnu_pbds::detail::gp_ht_map<Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Probe_Fn, Probe_Fn, Resize_Policy>::point_iterator_, bool> __gnu_pbds::detail::gp_ht_map<Key, Mapped, Hash_Fn, Eq_Fn, _Alloc, Store_Hash, Comb_Probe_Fn, Probe_Fn, Resize_Policy>::insert(const_reference) [with Key = int; Mapped = int; Hash_Fn = std::tr1::hash<int>; Eq_Fn = std::equal_to<int>; _Alloc = std::allocator<char>; bool Store_Hash = false; Comb_Probe_Fn = __gnu_pbds::direct_mask_range_hashing<>; Probe_Fn = __gnu_pbds::linear_probe_fn<long unsigned int>; Resize_Policy = __gnu_pbds::hash_standard_resize_policy<__gnu_pbds::hash_exponential_size_policy<>, __gnu_pbds::hash_load_check_resize_trigger<>, false, long unsigned int>; const_reference = const std::pair<const int, int>&]'
  327 |       insert(const_reference r_val)
      |              ~~~~~~~~~~~~~~~~^~~~~
sortbooks.cpp:55:35: error: 'class __gnu_pbds::gp_hash_table<int, int>' has no member named 'lower_bound'
   55 |                 auto iter1 = idxs.lower_bound(quers[i].second.first);
      |                                   ^~~~~~~~~~~