Submission #690516

#TimeUsernameProblemLanguageResultExecution timeMemory
690516Kaztaev_AlisherTrading (IZhO13_trading)C++17
0 / 100
4 ms7380 KiB
#include <bits/stdc++.h> #define ios ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define file(s) if (fopen(s".in", "r")) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout) #define all(a) a.begin() , a.end() #define F first #define S second using namespace std; using ll = long long; const ll N = 300005 , inf = 2e9 + 7; const ll INF = 1e18 , mod = 1e9+7 , P = 6547; ll n , q; vector<pair<ll,ll>> v[N]; ll t[N*4] , u[N*4]; void push(ll v , ll tl , ll tr){ if(tl == tr || u[v] == 0) return; t[v*2] += u[v]; t[v*2+1] += u[v]; u[v*2] += u[v]; u[v*2+1] += u[v]; u[v] = 0; } void upd(ll v , ll tl , ll tr , ll pos , ll val){ push(v,tl,tr); if(tl == tr){ t[v] = val; return; } ll tm = (tl+tr) >> 1; if(pos <= tm) upd(v*2,tl,tm,pos,val); else upd(v*2+1,tm+1,tr,pos,val); t[v] = max(t[v*2] , t[v*2+1]); } void solve(){ cin >> n >> q; while(q--){ ll l , r , x; cin >> l >> r >> x; v[l].push_back({1 , x}); v[r+1].push_back({0 , l}); } u[1] = -INF; t[1] = -INF; for(ll i = 1; i <= n; i++){ sort(all(v[i])); for(pair<ll,ll> x : v[i]){ if(x.F == 1) upd(1,1,n,i,x.S); else upd(1,1,n,x.S,-INF); } cout << max(t[1] , 0ll) <<" "; t[1]++; u[1]++; } } /* */ signed main(){ ios; solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...