Pagini recente » Cod sursa (job #3147083) | Cod sursa (job #910377) | Cod sursa (job #2256634) | Cod sursa (job #3287982) | Cod sursa (job #2166648)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("br.in");
ofstream out ("br.out");
int n,T,k,bani,ok,contor;
long long v[30001],c[15001];
long long suma;
int cautbin (int x,int k)
{
int poz=k;
for (int i=1<<30;i>0;i=i>>1)
if (poz+i<=2*n)
if (v[poz+i]-v[k-1]<=x)
poz+=i;
return poz-k+1;
}
int main()
{
in>>n>>T;
v[0]=0;
for (int i=1;i<=n;++i)
{
in>>c[i];
v[i]=c[i]+v[i-1];
}
for (int i=1;i<=n;++i)
v[i+n]=c[i]+v[i+n-1];
for (int i=1;i<=T;++i)
{
in>>k>>bani;
ok=0;
if (bani>=v[n]||bani<v[k]-v[k-1])
{
if (bani>=v[n])
out<<n<<'\n';
if (bani<v[k]-v[k-1])
out<<0<<'\n';
}
else
{
contor=cautbin(bani,k);
out<<contor<<'\n';
}
}
return 0;
}