Pagini recente » Cod sursa (job #2398901) | Istoria paginii runda/ichb-scoala-2014-10/clasament | Cod sursa (job #935108) | Cod sursa (job #435570) | Cod sursa (job #2081842)
#include <fstream>
using namespace std;
ifstream in("br.in");
ofstream out("br.out");
const int L=14, N=15001;
int v[2*N], sum[2*N];
int caut(int n, int k, int s, int sum[])
{
int pas, r;
pas=1<<L;
r=0;
while(pas!=0)
{
if(r+pas<=2*n && sum[r+pas]<=s+sum[k-1]) r+=pas;
pas/=2;
}
r = r - k + 1;
if (r > n)
{
r = n;
}
return r;
}
int main()
{
int n, t, i, k, s;
in>>n>>t;
for(i=1; i<=n; i++)
{
in>>v[i];
v[i+n]=v[i];
sum[i]=sum[i-1]+v[i];
}
for(i=1; i<=n; i++) sum[i+n]=sum[i+n-1]+v[i+n];
for(i=1; i<=t; i++)
{
in>>k>>s;
out<<caut(n, k, s, sum)<<'\n';
}
return 0;
}