Submission
Status:
----------
Subtask/Task Score:
0/100
Score: 0
User: C12
Problemset: Fool's Compensation
Language: cpp
Time: 0.004 second
Submitted On: 2026-01-07 17:11:38
#include <bits/stdc++.h>
using namespace std;
#define f first
#define s second
#define pii pair<ll,ll>
#define puii pair<ull,ull>
#define piii pair<ll,pii>
#define tiiii tuple<ll,ll,ll,ll>
#define ll long long
#define ull unsigned long long
#define mp make_pair
#define mt make_tuple
#define mpiiii(a,b,c) make_pair(a,make_pair(b,c));
// ll mod = 1000000007;
ll n;
ll dp[10000];
ll arr[10000];
ll recursive(ll i){
if(dp[i] > 0)
return dp[i];
ll mn = 0;
ll j;
j = i-1;
if(j >= 0){
while(arr[i] == arr[j] && j >= 0) j--;
if(arr[i] > arr[j] && j >= 0){
mn = max(mn,recursive(j));
}
}
j = i+1;
if(j < n){
while(arr[i] == arr[j] && j < n) j++;
if(arr[i] > arr[j] && j < n){
mn = max(mn,recursive(j));
}
}
dp[i] = mn + 1;
return dp[i];
}
void solve(){
cin >> n;
for(int i = 0;i < n;i++){
cin >> arr[i];
}
ll sum = 0;
cout << '\n';
for(int i = 0;i < n;i++){
sum += recursive(i);
cout << recursive(i) << '\n';
}
cout << (sum * 1000);
return;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
ll q;
// cin >> q;
// while(q--)
solve();
return 0;
}
/*
10
3
3
3
3
3
3
3
2
1
0
*/