Cod sursa(job #3317368)

Utilizator Tudor_11Tudor Ioan Calin Tudor_11 Data 23 octombrie 2025 13:55:41
Problema Cuburi2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("cuburi2.in");
ofstream fout("cuburi2.out");
int v[250001];
int sp[250001];
signed main()
{
    int n,m;
    fin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        fin>>v[i];
        sp[i]=v[i]*i+sp[i-1];
        v[i]+=v[i-1];
    }
    for(int i=1;i<=m;i++)
    {
        int a,b,val;
        fin>>a>>b;
        int sum=v[b]-v[a-1];
        sum++;
        sum/=2;
        sum+=v[a-1];
        int st=a,dr=b;
        while(st<dr)
        {
            int mid=(st+dr)/2;
            if(v[mid]<sum)
            {
                st=mid+1;
            }
            else
            {
                dr=mid;
            }
        }
        fout<<dr<<" ";
        val=(v[dr]-v[a-1])*dr-sp[dr]+sp[a-1];
        val+=(sp[b]-sp[dr-1]-dr*(v[b]-v[dr-1]));
        fout<<val<<'\n';
    }
    return 0;
}