Pagini recente » Cod sursa (job #849657) | Cod sursa (job #3335161) | Cod sursa (job #224714) | Cod sursa (job #1769082) | Cod sursa (job #3338541)
#include <fstream>
using namespace std;
ifstream cin("br.in");
ofstream cout("br.out");
int sp[30001],v[30001];
int main()
{
int n,t,i,st,dr,sol,buget,p,mijl;
cin>>n>>t;
for(i=1;i<=n;i++)
{
cin>>v[i];
sp[i]=sp[i-1]+v[i];
}
for(i=n+1;i<=2*n;i++)
{
sp[i]=sp[i-1]+v[i-n];
}
for(i=1;i<=t;i++)
{
cin>>p>>buget;
sol=0;
st=p;
dr=2*n;
while(st<=dr)
{
mijl=(st+dr)/2;
if(sp[mijl]-sp[p-1]<=buget)
{
sol=mijl;
st=mijl+1;
}
else
{
dr=mijl-1;
}
}
if(sol==0)
{
cout<<0<<"\n";
}
else
{
if(sol-p>=n)
{
cout<<n<<"\n";
}
else
{
cout<<sol-p+1<<"\n";
}
}
}
return 0;
}