# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
395511 | rama_pang | Segments (IZhO18_segments) | C++17 | 1963 ms | 10604 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
const int BLOCK = 1800;
const int BSIZE = 200005 / BLOCK + 5;
class Solver {
public:
vector<pair<int, int>> pending;
vector<pair<int, int>> intervals;
vector<int> lengths[BSIZE]; // (r - l + 1)
pair<int, int> minmaxl[BSIZE]; // min and max l in blockslr[]
vector<pair<int, int>> blockslr[BSIZE]; // (l, r)
int Isect(int a, int b, int l, int r) {
return max(0, min(b, r) - max(a, l) + 1);
}
void Insert(int l, int r) {
pending.emplace_back(l, r);
if (pending.size() >= BLOCK) {
for (auto p : pending) intervals.emplace_back(p);
sort(begin(intervals), end(intervals));
pending.clear();
for (int i = 0; i < int(intervals.size()); i += BLOCK) {
int b = i / BLOCK;
lengths[b].clear();
blockslr[b].clear();
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |