# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1161673 | AlgorithmWarrior | Monkey and Apple-trees (IZhO12_apple) | C++20 | 213 ms | 52052 KiB |
#include <bits/stdc++.h>
using namespace std;
struct node{
int cnt;
int fiust,fiudr;
};
struct dyn_seg_tree{
node v[12000000];
int total;
void propagate(int nod,int st,int mij,int dr){
if(!v[nod].fiust)
v[nod].fiust=++total;
if(!v[nod].fiudr)
v[nod].fiudr=++total;
if(v[nod].cnt==dr-st+1){
v[v[nod].fiust].cnt=mij-st+1;
v[v[nod].fiudr].cnt=dr-mij;
}
}
void add(int nod,int st,int dr,int a,int b){
if(a<=st && dr<=b)
v[nod].cnt=dr-st+1;
else{
int mij=(st+dr)/2;
propagate(nod,st,mij,dr);
if(a<=mij)
add(v[nod].fiust,st,mij,a,b);
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |