Submission #89801

# Submission time Handle Problem Language Result Execution time Memory
89801 2018-12-18T12:31:08 Z Vardanyan Monkey and Apple-trees (IZhO12_apple) C++14
0 / 100
946 ms 263168 KB
#include <bits/stdc++.h>
using namespace std;
struct node{
    node* l;
    node* r;
    int val;
    int lz;
    node():l(NULL),r(NULL),val(0),lz(-1){}
};
void push(node* v,int s,int e){
    if(v->lz!=-1){
        v->val = (e-s+1)*(v->lz);
        if(s!=e){
            if(v->l == NULL){
                v->l = new node();
                v->r = new node();
            }
                v->l->lz = v->lz;
                v->r->lz = v->lz;
        }
    }
    v->lz = -1;
}
void update(node* v,int s,int e,int l,int r,int val){
    push(v,s,e);
    if(l>r) return;
    if(s == l && e == r){
        v->lz = val;
        return;
    }
    int m = (s+e)/2;
    if(v->l == NULL){
        v->l = new node();
        v->r = new node();
    }
    update(v->l,s,m,l,min(m,r),val);
    update(v->r,m+1,e,max(l,m+1),r,val);
    push(v->l,s,m);
    push(v->r,m+1,e);
    v->val = v->l->val+v->r->val;
}
int get(node* v,int s,int e,int l,int r){
    if(v == NULL) return 0;
    push(v,s,e);
    if(l>r) return 0;
    if(s == l && e == r) return v->val;
    int m = (s+e)/2;
    return get(v->l,s,m,l,min(m,r))+
           get(v->r,m+1,e,max(l,m+1),r);
}
int main(){
    node* root;
    root = new node();
    int m;
    scanf("%d",&m);
    int C = 0;
    while(m--){
        int d,x,y;
        scanf("%d%d%d",&d,&x,&y);
        if(d == 1){
            int ans = get(root,1,1000*1000*1000,x+C,y+C);
            C = ans;
            printf("%d\n",ans);
        }
        else{
            update(root,1,1000*1000*1000,x+C,y+C,1);
        }
    }

    return 0;
}

Compilation message

apple.cpp: In function 'int main()':
apple.cpp:55:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d",&m);
     ~~~~~^~~~~~~~~
apple.cpp:59:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d%d",&d,&x,&y);
         ~~~~~^~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 380 KB Output is correct
2 Correct 2 ms 380 KB Output is correct
3 Correct 2 ms 460 KB Output is correct
4 Correct 29 ms 6204 KB Output is correct
5 Correct 33 ms 7748 KB Output is correct
6 Correct 33 ms 7748 KB Output is correct
7 Correct 35 ms 7916 KB Output is correct
8 Correct 287 ms 53500 KB Output is correct
9 Correct 583 ms 91416 KB Output is correct
10 Correct 619 ms 103884 KB Output is correct
11 Correct 626 ms 114084 KB Output is correct
12 Correct 666 ms 119736 KB Output is correct
13 Correct 553 ms 148588 KB Output is correct
14 Correct 542 ms 152140 KB Output is correct
15 Runtime error 946 ms 263168 KB Memory limit exceeded: We have a known bug that the memory usage is measured incorrectly (possibly because of Meltdown/Spectre patch), so your solution may be correct. Please submit again. Sorry for the inconvenience.
16 Halted 0 ms 0 KB -