I have N integers Ai defined as A1, A2, ..., AN. I have to handle Q queries of form a. For each such query, find an index i such that Ai ≥ a. And I have to minimise the difference Ai-a. I have done it like
while(q--)
{
cin>>a;
mini=INT_MAX;
index=-1;
for(int i=0;i<n;i++)
{
diff1=A[i]-a;
if(diff1>=0)
{
ll sum=diff1;
if(sum<mini)
{
mini=sum;
index=i+1;
}
if(mini==0)
break;
}
}
cout<<index;
}
But it leads to TLE . What is the efficient method to do it?