Submission #338833

#TimeUsernameProblemLanguageResultExecution timeMemory
338833tengiz05Monkey and Apple-trees (IZhO12_apple)C++17
0 / 100
534 ms262148 KiB
#include <bits/stdc++.h> using namespace std; //#define int long long #define FASTIO ios_base::sync_with_stdio(false); cin.tie(NULL); #define all(x) (x).begin(), (x).end() #define pb push_back #define pii pair<int, int> #define ff first #define ss second #define PI acos(-1) #define ld long double template<class T> bool ckmin(T& a, const T& b) {return a>b? a=b, true:false;} template<class T> bool ckmax(T& a, const T& b) {return a<b? a=b, true:false;} const int mod = 1e9+7, N = 2e5+5; int msb(int val){return sizeof(int)*8-__builtin_clzll(val)-1;} int a[N], n, m, k; struct node{ int l, r, ans, pr; array<node*, 2> kids; node(int l, int r){ kids = {NULL, NULL}; this->l = l; this->r = r; ans = pr = 0; } }; void prop(node *root){ if(root->pr){ for(auto to : root->kids)if(to != NULL)to->pr |= root->pr; int len = (root->r - root->l+1); root->ans = len; } } void update(node *root, int l, int r){ int mid = (root->l+root->r)/2; if(root->kids[0] == NULL)root->kids[0] = new node(root->l, mid); if(root->kids[1] == NULL)root->kids[1] = new node(mid+1, root->r); prop(root); if(root->l > r || root->r < l)return; if(root->l >= l && root->r <= r){ root->pr = 1; // cout << root->l << ' ' << root->r << '\n'; prop(root); return; }update(root->kids[0], l, r); update(root->kids[1], l, r); root->ans = 0; for(auto to : root->kids)root->ans += to->ans; } int query(node *root, int l, int r){ int mid = (root->l+root->r)/2; if(root->kids[0] == NULL)root->kids[0] = new node(root->l, mid); if(root->kids[1] == NULL)root->kids[1] = new node(mid+1, root->r); prop(root); if(root->l > r || root->r < l)return 0; if(root->l >= l && root->r <= r){ // cout << root->l << ' ' << root->r << '\n'; return root->ans; }int res = 0; res += query(root->kids[0], l, r); res += query(root->kids[1], l, r); return res; } void solve(int test_case){ int i, j, q; cin >> q; int lastans = 0; node *root = new node(1, mod); while(q--){ int type; cin >> type; int l, r; cin >> l >> r; if(type == 1){ // query int res = query(root, l+lastans, r+lastans); cout << res << '\n'; lastans = res; }else { // update update(root, l+lastans, r+lastans); } } return; } signed main(){ FASTIO; #define MULTITEST 0 #if MULTITEST int _T; cin >> _T; for(int T_CASE = 1; T_CASE <= _T; T_CASE++) solve(T_CASE); #else solve(1); #endif return 0; }

Compilation message (stderr)

apple.cpp: In function 'void solve(int)':
apple.cpp:65:6: warning: unused variable 'i' [-Wunused-variable]
   65 |  int i, j, q;
      |      ^
apple.cpp:65:9: warning: unused variable 'j' [-Wunused-variable]
   65 |  int i, j, q;
      |         ^
#Verdict Execution timeMemoryGrader output
Fetching results...