제출 #572104

#제출 시각아이디문제언어결과실행 시간메모리
572104hgmhc원숭이와 사과 나무 (IZhO12_apple)C++17
100 / 100
386 ms207792 KiB
#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 {
    int v; bool z;
    int s, e;
    node *l, *r;
    node(int s, int e): v(0), z(0), s(s), e(e) {}
    
    void propagate() {
        int 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(int a, int 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);
    }
    
    int query(int a, int 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);
        }
    }
}

컴파일 시 표준 에러 (stderr) 메시지

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 timeMemoryGrader output
Fetching results...