Submission #1147348

#TimeUsernameProblemLanguageResultExecution timeMemory
1147348LuvidiRMQ (NOI17_rmq)C++20
30 / 100
67 ms12232 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pll pair<ll, ll> #define pii pair<int, int> #define fs first #define sc second #define pb push_back void solve() { int n,q; cin>>n>>q; vector<pii> seg[n]; while(q--){ int l,r,x; cin>>l>>r>>x; seg[l].pb({r,x}); } int a[n]; priority_queue<pii> pq; for(int i=0;i<n;i++){ for(auto[r,x]:seg[i]){ pq.push({x,r}); } while(!pq.empty()&&pq.top().sc<i)pq.pop(); if(pq.empty())a[i]=0; else a[i]=pq.top().fs; } int sp[n][20]; for(int i=0;i<n;i++)sp[i][0]=a[i]; for(int x=1;x<20;x++){ for(int i=0;i+(1<<x)<=n;i++)sp[i][x]=min(sp[i][x-1],sp[i+(1<<x-1)][x-1]); } for(int i=0;i<n;i++){ for(auto[r,x]:seg[i]){ int k=31-__builtin_clz(r-i+1); if(min(sp[i][k],sp[r-(1<<k)+1][k])!=x){ for(int i=0;i<n;i++)cout<<"-1 "; cout<<'\n'; return; } } } for(int i=0;i<n;i++)cout<<a[i]<<' '; cout<<'\n'; } int main() { #ifdef FPO freopen("in","r",stdin); freopen("out","w",stdout); #endif ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...