#include<iostream>
#include<algorithm>
#define int long long
using namespace std;
int a[200005],sum,sum1;
bool cmp(int a,int b){
return a>b;
}
inline int read()
{
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9')
{
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0' && ch<='9')
x=x*10+ch-'0',ch=getchar();
return x*f;
}
main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
a[i]=read();
sum+=a[i];
}
sum1=sum;
int m;
cin>>m;
sort(a,a+n,cmp);
while(m--){
int x,y,minn=1e18+6,ans=0,mini=-1,ans1=0;
bool b=1;
sum=sum1;
cin>>x>>y;
for(int i=0;i<n;i++){
if(a[i]>=x&&a[i]<=minn){
minn=a[i];
mini=i;
}
}
if(mini==-1){
ans+=x-a[0];
mini=0;
sum-=a[0];
b=0;
}
else{
sum-=a[mini];
}
if(y-sum<0){
ans+=0;
}
else
ans+=y-sum;
sum+=a[mini];
ans1+=x-a[mini+1];
sum-=a[mini+1];
if(y-sum<0){
ans1+=0;
}
else ans1+=y-sum;
if(b==1)
cout<<min(ans,ans1)<<endl;
else cout<<ans<<endl;
}
return 0;
}
本地样例过了但一交上去就0分
(知道要二分但也不能wa啊)