Cod sursa(job #3238876)

Utilizator Andrei1209Andrei Mircea Andrei1209 Data 31 iulie 2024 11:48:59
Problema Factorial Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>

using namespace std;
ifstream fin("br.in");
ofstream fout("br.out");
int sp[30000 + 12], v[15000 + 12];
int main()
{
    int n, i, t, j, k, suma;
    fin >> n >> t;
    for ( i = 1; i <= n; ++i )
        fin >> v[i], sp[i] = sp[i - 1] + v[i];

    for ( i  = n + 1; i < 2 * n; ++i )
        sp[i] = sp[i - 1] + v[i % n];
    sp[2 * n] = sp[2 * n - 1 ] + v[n];
    for ( i = 1; i <= t; ++i )
    {
        fin >> k >> suma;
        int st = k, dr  = k + n - 1, mij, sol = 0;
        while ( st <= dr )
        {
            mij = ( st + dr ) / 2;
            if ( sp[mij] - sp[k - 1] <= suma )
            {
                sol = mij - k + 1;
                st = mij + 1;
            }
            else
                dr  = mij - 1;
        }
        fout << sol << '\n';
    }
    return 0;
}