# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1151220 | andrei_n | Addk (eJOI21_addk) | C++20 | 286 ms | 8112 KiB |
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n;
int Left[400005],Right[400005];
int sum[400005];
void _update(int st, int dr, int node, int p, int x)
{
if(st == dr)
{
Left[node] = Right[node] = x;
sum[node] = x;
}
else
{
int mij = (st+dr)/2;
if(p <= mij)
_update(st, mij, node<<1, p, x);
else
_update(mij+1, dr, (node<<1)+1, p, x);
sum[node] = sum[node<<1] + sum[(node<<1)+1];
Left[node] = Left[node<<1] + Left[(node<<1)+1] + sum[(node<<1)+1] * (mij - st + 1);
Right[node] = Right[node<<1] + Right[(node<<1)+1] + sum[node<<1] * (dr - mij);
}
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |