https://blog.youkuaiyun.com/weixin_39453270/article/details/82083939
这篇题解写的非常好了,push两次真心精髓,写endl估计又要被jls骂了
#include<cstdio>
#include<iostream>
#include<bitset>
#include<cstring>
#include<string>
#include<algorithm>
#include<map>
#include<queue>
#include<set>
#include<cmath>
#define mp make_pair
#define pb push_back
#define ll long long
#define lc no[x].ch[0]
#define rc no[x].ch[1]
#define pa no[x].fa
#define db double
#define ls x<<1
#define rs x<<1|1
#define For(i,a,b) for(int i=a;i<=b;i++)
#define Forr(i,a,b) for(int i=a;i>=b;i--)
using namespace std;
const int maxn=1e5+7;
priority_queue<int,vector<int>,greater<int> >Q;
map<int,int>mpp;
int n;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
while(!Q.empty())Q.pop();
mpp.clear();
int tmp;
ll ans=0;
int cnt=0;
int pp;
for(int i=1;i<=n;i++)
{
scanf("%d",&tmp);
if(!Q.empty()&&tmp>Q.top())
{
ans+=(ll)tmp-Q.top();
pp=Q.top();
Q.pop();
cnt++;
Q.push(tmp);
if(mpp[pp])
{
cnt--;
mpp[pp]--;
}
mpp[tmp]++;
}
Q.push(tmp);
}
cout<<ans<<" "<<cnt*2<<endl;
}
}