Cod sursa(job #3324906)

Utilizator cristiz123456Zoescu Cristian cristiz123456 Data 23 noiembrie 2025 22:34:44
Problema Cuburi2 Scor 16
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <fstream>

using namespace std;
ifstream cin("cuburi2.in");
ofstream cout("cuburi2.out");
const int N = 250000;
int s1[N + 5],s2[N + 5],s11[N + 2],s22[N + 5],v[N + 5];
int main()
{
    int n, m, x, y, st, dr, mij, caut, val, i;
    cin >> n >> m;
    for(i = 1; i <= n; i++)
    {
        cin >> v[i];
        s1[i] = v[i];
        s1[i] += s1[i - 1];
        s11[i] = s1[i];
        s11[i] += s11[i - 1];
    }
    for(i = n; i > 0; i--)
    {
        s2[i] = v[i];
        s2[i] += s2[i + 1];
        s22[i] = s2[i];
        s22[i] += s22[i + 1];
    }
    for(i = 0; i < m; i++)
    {
        cin >> x >> y;
        //printf("%d %d\n",x,y);
        caut = s1[y] - s1[x - 1];
        st = 1;
        dr = n;
        caut /= 2;
        while(st <= dr)
        {
            mij = (st + dr) / 2;
            if(s1[mij] - s1[x - 1] >= caut)
            {
                val = mij;
                dr = mij - 1;
            }
            else st = mij + 1;
        }
        cout << val << " " << s11[val - 1] - s11[x - 1] + s22[val + 1] - s22[y + 1] << "\n";
    }
    return 0;
}