Submission #1178440

#TimeUsernameProblemLanguageResultExecution timeMemory
1178440ChocoBouquet (EGOI24_bouquet)C++20
100 / 100
52 ms14456 KiB
#include<bits/stdc++.h> using namespace std; #define Study ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL) #define ll long long #define ull unsigned long long #define pb push_back #define ff first #define ss second #define ins insert #define all(x) x.begin(),x.end() #define fori(x,y,z) for(ll x=y;x<=z;x++) const ll INF=1e9; const ll sz=2e5+10; const ll mod=1e9+7; ll fw[sz]; void update(ll ind,ll val){ while(ind<sz){ fw[ind]=max(fw[ind],val); ind+=(ind&(-ind)); } } ll query(ll ind){ ll res=0; while(ind>0){ res=max(fw[ind],res); ind-=(ind&(-ind)); } return res; } void work(){ ll n; cin>>n; vector<ll>dp(sz); vector<vector<ll>>upd(sz); ll ans=0; fori(i,1,n){ ll l,r; cin>>l>>r; if(i-1<=l) dp[i]=1; else dp[i]=query(i-l-1)+1; ans=max(ans,dp[i]); upd[min(i+r,n)].pb(i); for(auto x: upd[i]) update(x,dp[x]); } cout<<ans; } int main(){ Study; ll t=1; //cin>>t; fori(i,1,t){ work(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...