Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: C12
Problemset: Fool's Compensation
Language: cpp
Time: 0.003 second
Submitted On: 2026-03-11 01:42:44
#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9+7;
int vec[10001];
int cost[10001];
int mul[10001];
int n;
int recursive(int i){
if(cost[i] > 0) return cost[i];
int mx = 0;
if(i < n-1){
int j = 0;
if(vec[i] > vec[i+1])
mx = max(mx,recursive(i+1));
}
if(i > 1){
if(vec[i] > vec[i-1])
mx = max(mx,recursive(i-1));
}
cost[i] = mx + 1;
return cost[i];
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
int m;
cin >> m;
cin >> vec[0];
mul[0] = 1;
n = 1;
int t;
for(int i = 1;i < m;i++){
cin >> t;
// cerr << i << ' ' << m << ' ' << t << '\n';
if(t == vec[n-1]) {
mul[n-1]++;
continue;
}
vec[n] = t;
mul[n] = 1;
n++;
}
// return 0;
// cout << '\n';
for(int i = 0;i < n;i++){
if(cost[i] == 0){
recursive(i);
}
}
long long sum = 0;
for(int i = 0;i < n;i++){
// cout << cost[i] << ' ' << mul[i] << '\n';
sum += (cost[i]*mul[i]);
}
sum *= 1000;
cout << sum;
}