Submission #314257

#TimeUsernameProblemLanguageResultExecution timeMemory
314257TricksterTrading (IZhO13_trading)C++14
100 / 100
730 ms10872 KiB
#include <algorithm> #include <string.h> #include <iostream> #include <stdio.h> #include <vector> #include <queue> #include <cmath> #include <set> #include <map> using namespace std; #define N 300010 #define ff first #define ss second #define ll long long #define pb push_back #define mod 1000000007 #define pii pair <int, int> #define sz(a) int(a.size()) #pragma GCC target ("avx2") #pragma GCC optimization ("O3") #pragma GCC optimization ("unroll-loops") ll bigmod(ll a,ll e) {if(e==0)return 1;ll x=bigmod(a*a%mod,e>>1);return e&1?x*a%mod:x;} int n, q; int v[N]; int L[N*4]; void shift(int x, int to) { L[to] = max(x, L[to]); } void upd(int a, int b, int x, int l, int r, int node) { if(l > b || r < a) return; if(l >= a && r <= b) { // cout << l << " " << r << " " << x+l-a << "\n"; L[node] = max(x+l-a, L[node]); return; } if(L[node]) { shift(L[node], node*2); shift(L[node]+(l+r)/2-l+1, node*2+1); L[node] = 0; } upd(a, b, x, l, (l+r)/2, node*2); upd(a, b, x, (l+r)/2+1, r, node*2+1); } int tap(int pos, int l, int r, int node) { if(l == r) return L[node]; if(L[node]) { shift(L[node], node*2); shift(L[node]+(l+r)/2-l+1, node*2+1); L[node] = 0; } if(pos <= (l+r)/2) return tap(pos, l, (l+r)/2, node*2); else return tap(pos, (l+r)/2+1, r, node*2+1); } int main() { cin >> n >> q; while(q--) { int l, r, x; cin >> l >> r >> x; upd(l, r, x, 1, n, 1); } for(int i = 1; i <= n; i++) cout << tap(i, 1, n, 1) << " "; } /* 5 2 1 3 2 2 4 6 6 4 4 4 3 1 2 5 5 6 1 6 6 1 */

Compilation message (stderr)

trading.cpp:22: warning: ignoring #pragma GCC optimization [-Wunknown-pragmas]
   22 | #pragma GCC optimization ("O3")
      | 
trading.cpp:23: warning: ignoring #pragma GCC optimization [-Wunknown-pragmas]
   23 | #pragma GCC optimization ("unroll-loops")
      |
#Verdict Execution timeMemoryGrader output
Fetching results...