Cod sursa(job #2166648)

Utilizator severutBogdan Sever-Cristian severut Data 13 martie 2018 18:08:13
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in ("br.in");
ofstream out ("br.out");

int n,T,k,bani,ok,contor;
long long v[30001],c[15001];
long long suma;
int cautbin (int x,int k)
{
    int poz=k;
    for (int i=1<<30;i>0;i=i>>1)
        if (poz+i<=2*n)
            if (v[poz+i]-v[k-1]<=x)
                poz+=i;
    return poz-k+1;
}
int main()
{
    in>>n>>T;
    v[0]=0;
    for (int i=1;i<=n;++i)
    {
        in>>c[i];
        v[i]=c[i]+v[i-1];
    }
    for (int i=1;i<=n;++i)
       v[i+n]=c[i]+v[i+n-1];
    for (int i=1;i<=T;++i)
    {
        in>>k>>bani;
        ok=0;
        if (bani>=v[n]||bani<v[k]-v[k-1])
        {
            if (bani>=v[n])
                out<<n<<'\n';
            if (bani<v[k]-v[k-1])
                out<<0<<'\n';
        }
        else
        {
            contor=cautbin(bani,k);
            out<<contor<<'\n';
        }
    }
    return 0;
}