Submission #479324

# Submission time Handle Problem Language Result Execution time Memory
479324 2021-10-11T09:05:58 Z jhhope1 Monkey and Apple-trees (IZhO12_apple) C++14
100 / 100
329 ms 132344 KB
#include<bits/stdc++.h>
using namespace std;
int C, M;
const int MAXN = 1e9;
struct Node{
    int set, val, l, r;
    Node(int val, int set):val(val),set(set),l(-1),r(-1){};
    Node():val(0),set(0),l(-1),r(-1){};
};
struct Seg{
    vector<Node> V;
    Seg(){
        V.emplace_back(0, 0);
    }
    void push_down(int s, int e, int v){
        int m = (s+e)>>1;
        if(V[v].l == -1){
            V[v].l = V.size();
            V.emplace_back();
            V[v].r = V.size();
            V.emplace_back();
        }
        if(V[v].set){
            V[V[v].l].val = V[v].set * (m-s+1);
            V[V[v].r].val = V[v].set * (e-m);
            V[V[v].l].set = V[V[v].r].set = V[v].set;
            V[v].set = 0;
        }
    }
    void update(int s, int e, int l, int r, int v, int val){
        if(e<l || r<s){
            return;
        }
        if(l<=s && e<=r){
            V[v].val = val * (e-s+1);
            V[v].set = val;
            return;
        }
        int m = (s+e)>>1;
        push_down(s, e, v);
        update(s, m, l, r, V[v].l, val);
        update(m+1, e, l, r, V[v].r, val);
        V[v].val = V[V[v].l].val + V[V[v].r].val;
    }
    int sum(int s, int e, int l, int r, int v){
        if(e<l || r<s){
            return 0;
        }
        if(l<=s && e<=r){
            return V[v].val;
        }
        push_down(s, e, v);
        int m = (s+e)>>1;
        return sum(s, m, l, r, V[v].l) + sum(m+1, e, l, r, V[v].r);
    }
}S;
int main(){
    ios_base::sync_with_stdio(0);cin.tie(0);
    cin>>M;
    for(int i=0,t,x,y ; i<M ; i++){
        cin>>t;
        if(t==1){
            cin>>x>>y;
            C = S.sum(1, MAXN, x+C, y+C, 0);
            cout<<C<<"\n";
        }
        else if(t==2){
            cin>>x>>y;
            S.update(1, MAXN, x+C, y+C, 0, 1);
        }
    }
}

Compilation message

apple.cpp: In constructor 'Node::Node(int, int)':
apple.cpp:6:14: warning: 'Node::val' will be initialized after [-Wreorder]
    6 |     int set, val, l, r;
      |              ^~~
apple.cpp:6:9: warning:   'int Node::set' [-Wreorder]
    6 |     int set, val, l, r;
      |         ^~~
apple.cpp:7:5: warning:   when initialized here [-Wreorder]
    7 |     Node(int val, int set):val(val),set(set),l(-1),r(-1){};
      |     ^~~~
apple.cpp: In constructor 'Node::Node()':
apple.cpp:6:14: warning: 'Node::val' will be initialized after [-Wreorder]
    6 |     int set, val, l, r;
      |              ^~~
apple.cpp:6:9: warning:   'int Node::set' [-Wreorder]
    6 |     int set, val, l, r;
      |         ^~~
apple.cpp:8:5: warning:   when initialized here [-Wreorder]
    8 |     Node():val(0),set(0),l(-1),r(-1){};
      |     ^~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 10 ms 2448 KB Output is correct
5 Correct 14 ms 2504 KB Output is correct
6 Correct 13 ms 2504 KB Output is correct
7 Correct 19 ms 2504 KB Output is correct
8 Correct 86 ms 16932 KB Output is correct
9 Correct 191 ms 33428 KB Output is correct
10 Correct 210 ms 33456 KB Output is correct
11 Correct 207 ms 33352 KB Output is correct
12 Correct 194 ms 33404 KB Output is correct
13 Correct 201 ms 66540 KB Output is correct
14 Correct 196 ms 66544 KB Output is correct
15 Correct 316 ms 132344 KB Output is correct
16 Correct 307 ms 132180 KB Output is correct
17 Correct 210 ms 66500 KB Output is correct
18 Correct 220 ms 66492 KB Output is correct
19 Correct 295 ms 132224 KB Output is correct
20 Correct 329 ms 132240 KB Output is correct