Cod sursa(job #3281418)

Utilizator Andrada_MincaAndrada Minca Andrada_Minca Data 1 martie 2025 14:19:54
Problema Cuburi2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
//
//  main.cpp
//  cuburi2
//
//  Created by Andrada Minca on 25.02.2025.
//

#include <fstream>
using namespace std;
ifstream fin("cuburi2.in");
ofstream fout("cuburi2.out");
int n,m;
long long v[250005],f[250005];
int main()
{
    fin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        fin>>v[i];
        f[i]=v[i]*i+f[i-1];
        v[i]+=v[i-1];
    }
    for(int i=1;i<=m;i++)
    {
        int a,b;
        long long val=0;
        fin>>a>>b;
        long long s=v[b]-v[a-1];
        s++;
        s/=2;
        s+=v[a-1];
        int st=a,dr=b;
        while(st<dr)
        {
            int mij=(st+dr)/2;
            if(v[mij]<s)st=mij+1;
            else dr=mij;
        }
        fout<<dr<<" ";
        val=(v[dr]-v[a-1])*dr-f[dr]+f[a-1];
        val+=(f[b]-f[dr-1]-dr*(v[b]-v[dr-1]));
        fout<<val<<'\n';
    }
    return 0;
}