Cod sursa(job #3280047)

Utilizator Andrada_MincaAndrada Minca Andrada_Minca Data 25 februarie 2025 11:43:35
Problema Cuburi2 Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 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,v[250005];
int main()
{
    fin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        fin>>v[i];
        v[i]+=v[i-1];
    }
    for(int i=1;i<=m;i++)
    {
        int a,b;
        int val=0;
        fin>>a>>b;
        int 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<<" ";
        for(int j=a;j<dr;j++)
        {
            val+=(v[j]-v[j-1])*(dr-j);
        }
        for(int j=dr+1;j<=b;j++)
        {
            val+=(v[j]-v[j-1])*(j-dr);
        }
        fout<<val<<'\n';
    }
    return 0;
}