Submission #572101

# Submission time Handle Problem Language Result Execution time Memory
572101 2022-06-03T16:06:33 Z hgmhc Monkey and Apple-trees (IZhO12_apple) C++17
0 / 100
501 ms 262144 KB
#include <bits/stdc++.h>
using namespace std; using ii = pair<int,int>; using ll = long long;
#define rep(i,a,b) for (auto i = (a); i <= (b); ++i)
#define all(x) (x).begin(), (x).end()
#define siz(x) int((x).size())
#define Mup(x,y) x = max(x,y)
#define mup(x,y) x = min(x,y)

struct node {
    ll v; bool z;
    ll s, e;
    node *l, *r;
    node(ll s, ll e): v(0), z(0), s(s), e(e), l(0), r(0) {}
    
    void propagate() {
        ll m = (s+e)/2;
        if (!l) l = new node(s,m);
        if (!r) r = new node(m+1,e);
        if (z) {
            l->v = m-s+1;
            r->v = e-m;
            l->z = r->z = 1;
            z = 0;
        }
    }
    
    void update(ll a, ll b) {
        if (a <= s and e <= b) {
            v = e-s+1, z = 1;
            return;
        }
        if (b < s or e < a) return;
        propagate();
        l->update(a,b), r->update(a,b);
        v = (l?l->v:0) + (r?r->v:0);
    }
    
    ll query(ll a, ll b) {
        if (a <= s and e <= b) return v;
        if (b < s or e < a) return 0;
        propagate();
        return (l?l->query(a,b):0) + (r?r->query(a,b):0);
    }
};

int m;

int main() {
    node *ds = new node(1,int(1e9));
    ll c = 0;
    scanf("%d", &m); while (m--)
    {
        int d, x, y;
        scanf("%d %d %d", &d, &x, &y);
        if (d == 1) {
            c = ds->query(x+c,y+c);
            printf("%lld\n", c);
        } else {
            ds->update(x+c,y+c);
        }
    }
}

Compilation message

apple.cpp: In function 'int main()':
apple.cpp:51:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   51 |     scanf("%d", &m); while (m--)
      |     ~~~~~^~~~~~~~~~
apple.cpp:54:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   54 |         scanf("%d %d %d", &d, &x, &y);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 300 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 14 ms 6444 KB Output is correct
5 Correct 16 ms 7764 KB Output is correct
6 Correct 16 ms 7612 KB Output is correct
7 Correct 16 ms 7780 KB Output is correct
8 Correct 134 ms 58720 KB Output is correct
9 Correct 338 ms 101136 KB Output is correct
10 Correct 262 ms 111820 KB Output is correct
11 Correct 309 ms 120152 KB Output is correct
12 Correct 285 ms 123976 KB Output is correct
13 Correct 274 ms 145636 KB Output is correct
14 Correct 260 ms 147040 KB Output is correct
15 Runtime error 501 ms 262144 KB Execution killed with signal 9
16 Halted 0 ms 0 KB -