# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
31761 | ruhanhabib39 | Divide and conquer (IZhO14_divide) | C++14 | 73 ms | 7876 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 INF = 1e9;
const int MAXN = 1e5;
int N;
int X[MAXN + 10], G[MAXN + 10], D[MAXN + 10];
long long gs[MAXN + 10], ds[MAXN + 10];
long long mxt[4 * MAXN + 10];
void init(int cn, int b, int e) {
if(b == e) {
mxt[cn] = X[b] - ds[b-1];
// cerr << "mxt[" << b << "] = " << mxt[cn] << "\n";
return;
}
int m = (b + e) / 2;
init(2*cn, b, m); init(2*cn+1, m+1, e);
mxt[cn] = max(mxt[2*cn], mxt[2*cn+1]);
}
int get(int cn, int b, int e, int l, int r, long long mv) {
if(r < b || l > e) return INF;
if(mxt[cn] < mv) return INF;
if(b == e) return b;
int m = (b + e) / 2;
int L = get(2*cn, b, m, l, r, mv);
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |