I solved this problem using a simple approach please tell me where I am wrong.
#include <bits/stdc++.h>
using namespace std;
typedef long long int LL;
int main() {
LL t;
cin>>t;
while(t–)
{
LL w;
cin>>w;
LL walls[w];
for(LL i=0;i<w;i++)
{
cin>>walls[i];
}
sort(walls,walls+w);
LL q;
cin>>q;
LL x[q],y[q];
for(LL i=0;i<q;i++)
{
cin>>x[i]>>y[i];
}
for(LL i=0;i<q;i++)
{
LL count=0;
for(LL j=0;j<w;j++)
{
if(x[i]+y[i]>walls[j])
{
count++;
}
if(x[i]+y[i]==0)
{
count=0;
}
if(x[i]+y[i]==walls[w-1]&&(x[i]!=0||y[i]!=0))
{
count=-1;
break;
}
if(x[i]+y[i]<walls[j])
{
break;
}
}
cout<<count<<endl;
}
}
return 0;
}