Submission
Status:
PPPPPPPPPP
Score: 100
User: Dormon
Problemset: Fool's Compensation
Language: cpp
Time: 0.002 second
Submitted On: 2025-03-14 14:00:32
#include <iostream>
#include <cstdint>
#include <cstring>
#include <vector>
#include <algorithm>
#include <functional>
#include <queue>
#include <numeric>
#include <array>
#include <iomanip> // cout << fixed << setprecision(n);
using namespace std;
const bool TEST_CASE = 0;
template<typename T>
typename std::enable_if<std::is_integral<T>::value>::type
Debug(const char* name, T value) {
std::cout << name << " : " << value << '\n';
}
template<typename T, typename... Args>
typename std::enable_if<std::is_integral<T>::value>::type
Debug(const char* names, T value, Args... args){
const char* comma = strchr(names, ',');
std::cout.write(names, comma - names) << " : " << value << " | ";
Debug(comma + 1, args...);
}
template<typename T>
ostream& operator<<(ostream& out, vector<T> &a){
for (auto &x : a) out << x << ' ';
return out;
};
#ifdef DORMON
#define debug(...) Debug(#__VA_ARGS__, __VA_ARGS__)
#else
#define debug(...)
#endif
void solve(){
int n;
cin >> n;
vector<int64_t> v(n + 2), dl(n + 2), dr(n + 2);
for (int i = 1;i <= n;i++)
cin >> v[i];
dl[1] = 1ll;
dr[n] = 1ll;
for (int i = 1;i <= n;i++)
if (v[i] > v[i - 1])
dl[i] = dl[i - 1] + 1ll;
else if (v[i] == v[i - 1])
dl[i] = dl[i - 1];
else
dl[i] = 1ll;
for (int i = n - 1;i >= 1;i--)
if (v[i] > v[i + 1])
dr[i] = dr[i + 1] + 1ll;
else if (v[i] == v[i + 1])
dr[i] = dr[i + 1];
else
dr[i] = 1ll;
int64_t ans = 0ll;
for (int i = 1;i <= n;i++)
ans += max(dl[i], dr[i]);
cout << ans * 1000ll << '\n';
}
int main()
{
#ifndef DORMON
ios_base::sync_with_stdio(false);
#endif
cin.tie(0);
int q = 1;
if (TEST_CASE) cin >> q;
while (q--){
solve();
}
}