# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1130617 | lopkus | Addk (eJOI21_addk) | C++20 | 382 ms | 7628 KiB |
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+50;
struct segtree{
int t[4*N] = {0};
int lazy[4*N] = {0};
void propagate(int v,int tl,int tr){
t[v]+=(tr-tl+1)*lazy[v];
if(tl!=tr){
lazy[v*2]+=lazy[v];
lazy[v*2+1]+=lazy[v];
}
lazy[v]=0;
}
int query(int v,int tl,int tr,int l,int r){
propagate(v,tl,tr);
if(tl>=l&&tr<=r)return t[v];
if(tl>r||tr<l)return 0;
int tm=(tl+tr)/2;
return (query(v*2,tl,tm,l,r)+query(v*2+1,tm+1,tr,l,r));
}
void update(int v,int tl,int tr,int l,int r,int value){
propagate(v,tl,tr);
if(tl>=l&&tr<=r){
lazy[v]+=value;
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |