# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
45089 | nibnalin | Divide and conquer (IZhO14_divide) | C++17 | 471 ms | 176768 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 <iostream>
#include <cstdio>
#include <vector>
using namespace std;
typedef long long int lli;
const lli maxn = lli(1e5)+5, inf = lli(1e16)+5, maxv = lli(1e16)+10, offset = lli(1e16)+5;
lli x[maxn], g[maxn], d[maxn];
struct ppnode {
lli val;
ppnode *l, *r;
ppnode(lli _val = inf, ppnode* _l = NULL, ppnode* _r = NULL)
{
val = _val, l = _l, r = _r;
}
};
typedef ppnode* pnode;
pnode root[maxn] = {NULL};
pnode upd(pnode root, lli L, lli R, lli a, lli v)
{
if(L == R) return new ppnode(min(root->val, v), NULL, NULL);
else if(a <= (L+R)/2) return new ppnode(min(root->val, v), upd(root->l, L, (L+R)/2, a, v), root->r);
else return new ppnode(min(root->val, v), root->l, upd(root->r, (L+R)/2+1, R, a, v));
}
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... |