Lang:G++
Edit123456789101112131415161718192021222324252627282930#include <bits/stdc++.h>using namespace std;typedef long long int ll;ll num[100010];ll ans1 = 0,ans2 =0;int main(){int n;scanf("%d",&n);priority_queue<int >que;for(int i=1;i<=n;i++){scanf("%lld",&num[i]);if(!que.empty()&&que.top()>num[i])ans1 += que.top() - num[i];que.push(num[i]);que.push(num[i]);que.pop();}priority_queue<int >que1;for(int i=1;i<=n;i++){if(!que1.empty()&&-que1.top()<num[i])ans2 += que1.top() + num[i];que1.push(-num[i]);que1.push(-num[i]);que1.pop();}printf("%lld\n",min(ans1,ans2) );}