답안 #615173

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
615173 2022-07-31T07:23:00 Z 반딧불(#8492) Ants and Sugar (JOI22_sugar) C++17
0 / 100
1 ms 340 KB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

struct segTree{
    struct Node{
        ll done, prv, nxt;
        Node(){}
        Node(ll done, ll prv, ll nxt): done(done), prv(prv), nxt(nxt){}

        Node operator+(const Node &r)const{
            ll tmp = min(r.prv, nxt);
            return Node(done+r.done+tmp, prv, r.nxt);
        }
    } tree[1000002];

    void update(int i, int l, int r, int x, ll v){
        if(l==r){
            if(v>0) tree[i].prv+=v;
            else tree[i].nxt-=v;
            ll tmp = min(tree[i].prv, tree[i].nxt);
            tree[i].prv -= tmp, tree[i].nxt -= tmp;
            tree[i].done += tmp;
            return;
        }
        int m = (l+r)>>1;
        if(x<=m) update(i*2, l, m, x, v);
        else update(i*2+1, m+1, r, x, v);
        tree[i] = tree[i*2] + tree[i*2+1];
    }

    ll query(){
        return tree[1].done;
    }
} tree;

int q, l;

int main(){
    int MAX = 250001;
    scanf("%d %d", &q, &l);
    for(int qc=1; qc<=q; qc++){
        int t, x, y;
        scanf("%d %d %d", &t, &x, &y);
        x=(x+1)/2;
        if(t==1) tree.update(1, 0, MAX, x, y);
        else tree.update(1, 0, MAX, x, -y);
        printf("%lld\n", tree.query());
    }
}

Compilation message

sugar.cpp: In function 'int main()':
sugar.cpp:43:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   43 |     scanf("%d %d", &q, &l);
      |     ~~~~~^~~~~~~~~~~~~~~~~
sugar.cpp:46:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   46 |         scanf("%d %d %d", &t, &x, &y);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 308 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 308 KB Output isn't correct
2 Halted 0 ms 0 KB -