rt,用的是直播讲的正解,样例全过,提供小hack样例也关
#include<bits/stdc++.h>
#define x first
#define y second
#define int long long
using namespace std;
const int N=2e5+10,3MOD=1e9+7;
int n,a[N],b[N],ans;
bool vis[N];
pair<int,int>c[2*N];
signed main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>b[i];
}
for(int i=1;i<=n;i++){
cin>>a[i];
c[i].x=b[i]-a[i],c[i].y=i;
c[i+n].x=a[i]-1,c[i+n].y=i;
}
sort(c+1,c+1+n*2);
int pow2=1;
for(int i=1;i<=n;i++){
pow2*=2;
}
for(int i=1;i<=2*n;i++){
pow2/=2;
if(vis[c[i].y]){
ans=(ans+c[i].x*(pow2+1)%MOD)%MOD;
break;
}else{
vis[c[i].y]=1;
}
ans=(ans+c[i].x*(pow2)%MOD)%MOD;
}
cout<<(ans+1)%MOD<<endl;
return 0;
}