Submission #1146803

#TimeUsernameProblemLanguageResultExecution timeMemory
1146803goduadzesabaCat Exercise (JOI23_ho_t4)C++20
21 / 100
2092 ms2236 KiB
#include <bits/stdc++.h> #define int long long using namespace std; const int N=5e5+5,mod=1e9+7,inf=1e18; int n,a[N],x,y; pair<int,int> solve(int l, int r) { if (l==r) { return {0, l}; } int mx=0; for (int i=l; i<=r; i++) if (a[mx]<a[i]) mx=i; if (l==mx) { pair<int,int> R=solve(mx+1,r); return {R.first+R.second-mx,mx}; } if (mx==r){ pair<int,int> L=solve(l,mx-1); return {L.first-L.second+mx,mx}; } pair<int,int> L=solve(l,mx-1),R=solve(mx+1,r); return max(pair<int,int>{R.first+R.second-mx,mx},pair<int,int>{L.first-L.second+mx,mx}); } signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cin>>n; for (int i=1; i<=n; i++) cin>>a[i]; for (int i=1; i<n; i++){ cin>>x>>y; } cout<<solve(1,n).first; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...