Cod sursa(job #2920864)

Utilizator TheNamelessOneCiociia Marius Andrei TheNamelessOne Data 26 august 2022 14:07:49
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>

using namespace std;

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

int v[30001],n,T,k,x;
long long S[30001];

int cb (int St, int Dr, int x)
{
    int st=St,dr=Dr;
    while (st<=dr){
        int mij=(st+dr)/2;
        if (S[mij]-S[St-1]<=x) st=mij+1;
        else dr=mij-1;
    }
    return dr;
}

int main()
{
    cin>>n>>T;
    for (int i=1; i<=n; ++i) {
        cin>>v[i];
        v[n+i]=v[i];
    }
    for (int i=1; i<=2*n; ++i) S[i]=S[i-1]+v[i];

    for (; T>0; --T)
    {
        cin>>k>>x;
        if (x>=S[n]) cout<<n<<"\n";
        else if (x<v[k]) cout<<0<<"\n";
        else cout<<cb(k,2*n,x)-k+1<<"\n";
    }

    return 0;
}