Cod sursa(job #2081843)

Utilizator ilie0712Botosan Ilie ilie0712 Data 5 decembrie 2017 11:13:12
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#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;
}