Submission #1120147

#TimeUsernameProblemLanguageResultExecution timeMemory
112014712345678Bouquet (EGOI24_bouquet)C++17
100 / 100
64 ms14696 KiB
#include <bits/stdc++.h> using namespace std; const int nx=2e5+5; int n, l, r, dp[nx], ans; vector<int> upd[nx]; struct fenwick { int d[nx]; void update(int i, int vl) {while (i<nx) d[i]=max(d[i], vl), i+=(i&-i);} int query(int i) { int res=0; while (i>0) res=max(res, d[i]), i-=(i&-i); return res; } } f; int main() { cin.tie(NULL)->sync_with_stdio(false); cin>>n; for (int i=1; i<=n; i++) { cin>>l>>r; for (auto x:upd[i]) f.update(x, dp[x]); dp[i]=f.query(max(0, i-l-1))+1; upd[min(n+1, i+r+1)].push_back(i); ans=max(ans, dp[i]); } cout<<ans; }
#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...