Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: GastrointestinalTrackInflammation

Problemset: Fool's Compensation

Language: cpp

Time: 0.004 second

Submitted On: 2025-12-16 17:11:33

#include<bits/stdc++.h>

using namespace std;

#define ll long long

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);cout.tie(nullptr);
    int n;
    ll ans=1000;
    ll curprice=1000;
    cin>>n;
    int a[n];
    int lastequal[n];
    ll rate[n]={0};
    rate[0]=1000;
    lastequal[0]=0;
    for(int i=0;i<n;i++)cin>>a[i];
    int firstdes=0;
    for(int i=1;i<n;i++){
        if(a[i]==a[i-1])lastequal[i]=lastequal[i-1];
        else lastequal[i]=i;
        //cout<<ans<<endl;
        if(a[i]==a[i-1]){
            ans+=curprice;
            rate[i]=curprice;
            continue;
        }
        if(a[i]>a[i-1]){
            curprice+=1000;
            ans+=curprice;
            rate[i]=curprice;
            continue;
        }
        
        if(curprice!=1000){
            curprice=1000;
            firstdes=i;
        }else{
            rate[firstdes]+=1000;
            if(firstdes!=0 && rate[firstdes] == rate[firstdes-1]){
                firstdes=lastequal[firstdes-1];
                rate[firstdes]++;
            }
        }
        
        ans+=curprice;
        ans+=(i-firstdes)*1000;
        rate[i]=curprice;

    }
    cout<<ans<<endl;
    return 0;
}

/*
9
1 2 3 4 5 4 5 4 3
*/