Submission
Status:
PPPPP-PPPP
Subtask/Task Score:
90/100
Score: 90
User: august
Problemset: Fool's Compensation
Language: cpp
Time: 0.003 second
Submitted On: 2026-03-22 17:41:52
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pi pair<int,int>
const int INF = 1e18;
int32_t main() {
cin.tie(0)->sync_with_stdio(0);
int n;
cin>> n;
vector<pi> a;
vector<int> b(n+2,0), val(n+2, 0);
for (int i=1; i<=n; i++) {
pi cur;
cin>> cur.first;
cur.second = i;
a.push_back(cur);
b[i] = cur.first;
}
sort(a.begin(), a.end());
int cost = 0;
for (int i=0; i<n; i++) {
pi cur = a[i];
int v = cur.first, id = cur.second;
int mx = 0;
if (b[id] > b[id-1]) mx = max(mx, val[id-1]);
if (b[id] > b[id+1]) mx = max(mx, val[id+1]);
mx += 1000;
val[id] = mx;
}
int i=1;
while (i<=n) {
int j=i+1;
int mx=val[i];
while (b[i] == b[j] && j<=n) mx=max(mx, val[j]), j++;
cost += mx * (j-i);
i=j;
}
cout<< cost;
}
/*
10
3
3
3
3
3
3
3
2
1
0
*/