WA求助!
查看原帖
WA求助!
110319
LYR_楼主2020/12/5 21:54

提交记录

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=3e5+10;
ll n,a[N],pre[N],suf[N];
priority_queue<ll,vector<ll>,greater<ll> > q1;
priority_queue<ll> q2; 
int main() {
	cin>>n;
	for(int i=1;i<=3*n;i++) cin>>a[i];
	for(int i=1;i<=n;i++) {
		q1.push(a[i]);
		pre[i]=pre[i-1]+a[i];
		q2.push(a[3*n-i+1]);
		suf[3*n-i+1]=suf[3*n-i+2]+a[3*n-i+1];
	}
	for(int i=n+1;i<=3*n;i++) {
		q1.push(a[i]);
		pre[i]=pre[i-1];
		if(q1.top()!=a[i]) {
			pre[i]+=a[i]-q1.top();
		}
		q1.pop();
	}
	for(int i=2*n;i>=1;i--) {
		q2.push(a[i]);
		suf[i]=suf[i+1];
		if(q2.top()!=a[i]) {
			suf[i]+=a[i]-q2.top();
		}
		q2.pop();
	}
	ll ans=-100000000000000; 	
	for(int i=n-1;i<=2*n;i++) {
		ans=max(ans,pre[i]-suf[i+1]);
	}
	cout<<ans<<endl;
	return 0;
}
2020/12/5 21:54
加载中...