#define _CRT_SECURE_NO_WARNINGS
//#pragma GCC optimize(1)
//#pragma GCC optimize(2)
//#pragma GCC optimize(3,"Ofast","inline")
#include<bits/stdc++.h>
#include<iostream>
using namespace std;
#define N 2000005
#define M 1331
#define PII pair<int,int>
#define PIII pair<pair<int,int>,int>
#define inf 0x3f3f3f3f3f3f
#define ll long long
#define ull unsigned long long
const double eps = 1e-6;
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define mod 1000000007
int n;
vector<int>a(2000 + 2);
ll solve() {
ll res = 0;
priority_queue<int>q;
for (int i = 1; i <= n; i++) {
q.push(a[i]);
if (a[i] < q.top()) {
res += q.top() - a[i];
q.pop();
q.push(a[i]);
}
}
return res;
}
int main()
{
IOS;
cin >> n;
for (int i = 1; i <= n; i++)cin >> a[i];
ll ans = inf;
ans = solve();
//不上升形式,则仅需要将a反过来再运行一次solve()函数即可。
reverse(a.begin() + 1, a.begin() + 1 + n);
ans = min(ans, solve());
cout << ans << '\n';
return 0;
}
AcWing 算法进阶指南273. 分级
于 2023-09-13 21:07:15 首次发布