Submission #1098699

#TimeUsernameProblemLanguageResultExecution timeMemory
1098699MPGMonkey and Apple-trees (IZhO12_apple)C++17
100 / 100
575 ms262144 KiB
#pragma GCC optimization ("unroll-loops") #pragma GCC optimization ("O1, O2, O3, Ofast") #pragma GCC optimization ("trapv") #pragma GCC optimization ("sse, sse2, sse3, sse4, sse4.1, sse4.2, avx") #include <bits/stdc++.h> using namespace std; typedef long long ll; #define max_heap priority_queue<ll> #define min_heap priority_queue<pair <ll, ll>, vector<pair <ll, ll>>, greater<pair <ll, ll>>> // size(), push(), top(), pop(); //#define min_heap priority_queue<ll, vector<ll>, greater<ll>> #define sariE cin.tie(NULL); cout.tie(NULL); ios_base::sync_with_stdio(false); #define filE freopen("in.txt", "r", stdin); freopen("out1.txt", "w", stdout); #define endl '\n' #define md(a) (a % mod + mod) % mod //cout << setprecision(5) << f; ll const maxn = 2e5 + 10; ll const inf = 2e18; ll const loG = 23; ll const mod = 998244353; //1e9 + 9, // 1e9 + 7; ll const sq = 750; ll power(ll a, ll b, ll mod){if (b == 0) return 1; if (b == 1) return a; ll x = power(a, b / 2, mod); return (((x * x) % mod) * (b % 2 ? a : 1)) % mod;} ll q; vector <pair <ll, ll>> child; vector <ll> op, arr; void breed(ll x, ll lx, ll rx){ if ((child[x].first != 0) || (rx - lx == 1)) return; child[x].first = child.size(); child.push_back({0, 0}); op.push_back(-1); arr.push_back(0); child[x].second = child.size(); child.push_back({0, 0}); op.push_back(-1); arr.push_back(0); } void propogate(ll x, ll lx, ll rx){ breed(x, lx, rx); if (rx - lx == 1) return; if (op[x] == -1) return; ll a = child[x].first, b = child[x].second, mid = (lx + rx) / 2; arr[a] = (mid - lx) * op[x]; arr[b] = (rx - mid) * op[x]; op[a] = op[x]; op[b] = op[x]; op[x] = -1; } ll get(ll l, ll r, ll x, ll lx, ll rx){ propogate(x, lx, rx); if (l >= rx || lx >= r) return 0; if (l <= lx && rx <= r) return arr[x]; ll a = child[x].first, b = child[x].second, mid = (lx + rx) / 2; return get(l, r, a, lx, mid) + get(l, r, b, mid, rx); } void setter(ll l, ll r, ll val, ll x, ll lx, ll rx){ propogate(x, lx, rx); if (l >= rx || lx >= r) return; if (l <= lx && rx <= r){ arr[x] = (rx - lx) * val; op[x] = val; return; } ll a = child[x].first, b = child[x].second, mid = (lx + rx) / 2; setter(l, r, val, a, lx, mid); setter(l, r, val, b, mid, rx); arr[x] = arr[a] + arr[b]; } int main(){ sariE;// filE; child.push_back({0, 0}); arr.push_back(0); op.push_back(-1); ll enc = 0; cin >> q; while (q--){ ll chi, l, r; cin >> chi >> l >> r; l += enc; r += enc; if (chi == 1){ ll ans = get(l, r + 1, 0, 0, 1e9 + 10); cout << ans << endl; enc = ans; } else{ setter(l, r + 1, 1, 0, 0, 1e9 + 10); } } }

Compilation message (stderr)

apple.cpp:1: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    1 | #pragma GCC optimization ("unroll-loops")
      | 
apple.cpp:2: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    2 | #pragma GCC optimization ("O1, O2, O3, Ofast")
      | 
apple.cpp:3: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    3 | #pragma GCC optimization ("trapv")
      | 
apple.cpp:4: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    4 | #pragma GCC optimization ("sse, sse2, sse3, sse4, sse4.1, sse4.2, avx")
      |
#Verdict Execution timeMemoryGrader output
Fetching results...