답안 #1088791

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1088791 2024-09-15T05:48:01 Z rayan_bd 원숭이와 사과 나무 (IZhO12_apple) C++17
0 / 100
307 ms 262144 KB
#include <bits/stdc++.h>
 
using namespace std;
 
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
#pragma GCC optimization("Ofast")
 
#define ll long long
 
const int mxN = 1e9+100;
 
struct Node {
    ll val = 0, lazy = 0;
    Node* left = NULL;
    Node* right = NULL;
};
 
typedef Node* root;
root R = new Node;
 
void push(root& nd, ll l, ll r) {
    if (!nd){
        nd=new Node;
    }
    if(nd->lazy==0) return;
    nd->val = (r - l + 1) * nd->lazy;
    if (r - l > 0) {
        if (nd->left == NULL) nd->left = new Node;
        if (nd->right == NULL) nd->right = new Node;
        nd->left->lazy = nd->lazy;
        nd->right->lazy = nd->lazy;
    }
    nd->lazy = 0; 
}
 
void update(root& nd, ll start, ll end, ll l, ll r) {
    push(nd, start, end);
    if (start > r || end < l) return;
    if (start >= l && end <= r) {
        nd->lazy = 1; 
        push(nd, start, end); 
        return;
    }
    ll mid = start + (end - start) / 2;
    update(nd->left, start, mid, l, r);
    update(nd->right, mid + 1, end, l, r);
    nd->val = (nd->left ? nd->left->val : 0) + (nd->right ? nd->right->val : 0);
}
 
ll qry(root& nd, ll start, ll end, ll l, ll r) {
    push(nd, start, end);
    if (start > r || end < l) return 0;
    if (start >= l && end <= r) return nd->val;
    ll mid = start + (end - start) / 2;
    return qry(nd->left, start, mid, l, r) + qry(nd->right, mid + 1, end, l, r);
}
 

signed main() {

    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    
 
    ll n,prev=0,p2=1,e,l,r;cin>>n;

    while(n--){
        cin>>e>>l>>r;
        l+=prev;
        r+=prev;
        if(e==1){
            prev=qry(R,1,mxN,l,r);
            cout<<prev<<'\n';
        }else if(e==2){
            update(R,1,mxN,l,r);
        }
    }
 
    return 0;
}

Compilation message

apple.cpp:6: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    6 | #pragma GCC optimization ("O3")
      | 
apple.cpp:7: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    7 | #pragma GCC optimization ("unroll-loops")
      | 
apple.cpp:8: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    8 | #pragma GCC optimization("Ofast")
      | 
apple.cpp: In function 'int main()':
apple.cpp:67:17: warning: unused variable 'p2' [-Wunused-variable]
   67 |     ll n,prev=0,p2=1,e,l,r;cin>>n;
      |                 ^~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 13 ms 8744 KB Output is correct
5 Correct 21 ms 10588 KB Output is correct
6 Correct 15 ms 10076 KB Output is correct
7 Correct 16 ms 10596 KB Output is correct
8 Correct 124 ms 77904 KB Output is correct
9 Correct 285 ms 132708 KB Output is correct
10 Correct 270 ms 148568 KB Output is correct
11 Correct 304 ms 161108 KB Output is correct
12 Correct 291 ms 166736 KB Output is correct
13 Correct 265 ms 207184 KB Output is correct
14 Correct 276 ms 209232 KB Output is correct
15 Runtime error 307 ms 262144 KB Execution killed with signal 9
16 Halted 0 ms 0 KB -