Pagini recente » Cod sursa (job #444181) | Cod sursa (job #3209448) | Cod sursa (job #2440627) | Cod sursa (job #2737577) | Cod sursa (job #2212351)
#include <bits/stdc++.h>
using namespace std;
ifstream in("br.in");
ofstream out("br.out");
int n,t,a[15100],b[10100],p,k;
int cb(int st, int dr){
int poz = 0;
while(st<=dr){
int mid = (st+dr)/2;
int sum = b[mid] - b[k-1];
if(sum>p) dr = mid - 1;
else st = mid + 1, poz = mid;
}
if(poz) return poz-k+1;
else return 0;
}
int main()
{
in >> n >> t;
for(int i=1; i<=n; i++){
in >> a[i];
b[i] = b[i-1] + a[i];
}
for(int i=1; i<=n; i++){
b[n+i] = b[n] + b[i];
}
for(int i=1; i<=t; i++){
in >> k >> p;
out << cb(k,n+k-1) << "\n";
}
return 0;
}