Pagini recente » Cod sursa (job #200908) | Cod sursa (job #2953438) | Cod sursa (job #1057211) | Clasament fmi2012morarcosmin | Cod sursa (job #2081843)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("br.in");
ofstream out("br.out");
const int L=14;
int v[32002],sum[32002];
int cautbin( int sum[], int n, int k, int x)
{
int pas=1<<L;
int r=0;
while(pas!=0)
{
if(r+pas<=n && sum[r+pas]<=x+sum[k-1])
{
r+=pas;
}
pas/=2;
}
if(r-k+1>=n/2) return n/2;
return r-k+1;
}
int main()
{
int n,t,s=0,k,x;
in>>n>>t;
for(int i=1; i<=n; ++i)
{
in>>v[i];
v[i+n]=v[i];
}
n=2*n;
for(int i=1; i<=n; ++i)
{
sum[i]=sum[i-1] +v[i];
}
for(int i=1; i<=t; ++i)
{
in>>k>>x;
out<<"\n"<<cautbin(sum,n,k,x);
}
return 0;
}