답안 #1088793

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1088793 2024-09-15T05:52:54 Z rayan_bd 원숭이와 사과 나무 (IZhO12_apple) C++17
0 / 100
311 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 >= 1) {
        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:71:17: warning: unused variable 'p2' [-Wunused-variable]
   71 |     ll n,prev=0,p2=1,e,l,r;cin>>n;
      |                 ^~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 14 ms 8540 KB Output is correct
5 Correct 15 ms 10332 KB Output is correct
6 Correct 19 ms 10076 KB Output is correct
7 Correct 16 ms 10328 KB Output is correct
8 Correct 127 ms 77028 KB Output is correct
9 Correct 255 ms 130896 KB Output is correct
10 Correct 267 ms 146768 KB Output is correct
11 Correct 272 ms 159408 KB Output is correct
12 Correct 294 ms 164804 KB Output is correct
13 Correct 264 ms 205116 KB Output is correct
14 Correct 271 ms 207328 KB Output is correct
15 Runtime error 311 ms 262144 KB Execution killed with signal 9
16 Halted 0 ms 0 KB -