提交记录
#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;
}