Pagini recente » Istoria paginii runda/79535327715211545/clasament | Cod sursa (job #894855) | Cod sursa (job #1461223) | Cod sursa (job #309109) | Cod sursa (job #2208323)
#include <cstdio>
using namespace std;
int v[30001];
int main()
{
freopen ("br.in", "r", stdin);
freopen ("br.out", "w", stdout);
int n, i, t, nr, k, x, st, dr, m;
scanf("%d %d", &n, &t);
for (i=1; i<=n; i++){
scanf("%d", &nr);
v[i]=v[i]+v[i-1]+nr;
v[n+1]=nr;
}
for (i=1; i<=n; i++)
v[n+i]=v[n+i]+ v[n+i-1];
for (i=1; i<=t; i++){
scanf("%d %d", &k, &x);
st=0;
dr=n;
while (st<=dr)
{
m=(st+dr)/2;
if (v[k+m-1]-v[k-1]>x)
dr=m-1;
else{
st=m+1;
nr=m;
}
}
printf("%d", nr);
printf("\n");
}
return 0;
}