제출 #593052

#제출 시각아이디문제언어결과실행 시간메모리
593052ZaniteSegments (IZhO18_segments)C++17
0 / 100
338 ms65536 KiB
// I am now here, but I have yet to prove that I am worthy of my place here.

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

using namespace std;
using namespace __gnu_pbds;

using OrderedMultiset	= tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update>;

struct FenwickTree {
	int sz;
	vector<OrderedMultiset> L, R;

	FenwickTree(int sz) : sz(sz) {
		L.assign(sz+1, OrderedMultiset());
		R.assign(sz+1, OrderedMultiset());
	}

	void update(int idx, int l, int r) {
		for (; idx > 0; idx -= (idx & -idx)) {
			L[idx].insert(l);
			R[idx].insert(r);
		}
	}
};

int main() {
	mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
	const int MX = 200000;
	uniform_int_distribution<int> uid(1, MX);

	FenwickTree F(MX);
	for (int i = 1; i <= MX; i++) {
		int l = uid(rng), r = uid(rng), k = uid(rng);
		F.update(k, l, r);
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...