| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1307908 | sakka | Cat Exercise (JOI23_ho_t4) | C++20 | 40 ms | 9576 KiB |
#include <bits/stdc++.h>
#define ll long long
#define fi first
#define sec second
#define pb push_back
#define pll pair<ll,ll>
#define pii pair<int,int>
using namespace std;
void fr(){
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
}
const ll INF = 1e18;
int n, m;
vector<ll> dp(2e5+2), kiri(2e5+2), kanan(2e5+2);
vector<pll> h(2e5+2);
bool cmp(pll a, pll b){
return a.fi > b.fi;
}
void solve(){
cin >> n;
for(int i=1; i<=n; i++){
cin >> h[i].fi;
h[i].sec = i;
}
vector<ll> st;
for(int i=1; i<=n; i++){
auto [x, idx] = h[i];
while(st.size() && h[st.back()].fi < x){
kanan[st.back()] = idx;
st.pop_back();
}
st.pb(idx);
}
st.clear();
for(int i=n; i>=1; i--){
auto [x, idx] = h[i];
while(st.size() && h[st.back()].fi < x){
kiri[st.back()] = idx;
st.pop_back();
}
st.pb(idx);
}
sort(h.begin()+1, h.begin()+n+1, cmp);
ll mx = 0;
dp[0] = -INF;
for(int i=2; i<=n; i++){
auto [x, idx] = h[i];
dp[idx] = max(dp[kanan[idx]] + abs(idx - kanan[idx]), dp[kiri[idx]] + abs(idx - kiri[idx]));
// cout << idx << " " << kiri[idx] << " " << kanan[idx] << endl;
// cout << idx << " " << dp[idx] << endl;
mx = max(mx, dp[idx]);
}
cout << mx << endl;
}
int main(){
ios_base :: sync_with_stdio(0); cin.tie(0); cout.tie(0);
// fr();
solve();
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
