Cod sursa(job #3329793)

Utilizator ana.veronica13Ana Veronica Draghici ana.veronica13 Data 15 decembrie 2025 18:49:07
Problema Cuburi2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <bits/stdc++.h>

using namespace std;

long long s1[250005], s2[250005];

int main(){
    ifstream cin( "cuburi2.in" );
    ofstream cout( "cuburi2.out" );
    long long n, i, x, y, ans, dr, st, mid, val, k, c;
    cin >> n >> k;
    for( i = 1; i <= n; i++ ){
        cin >> x;
        s1[i] = s1[i - 1] + x;
        s2[i] = s2[i - 1] + ( i * x );
    }
    for( i = 0; i < k; i++ ){
        cin >> x >> y;
        st = x;
        dr = y;
        val = ( s1[y] - s1[x - 1] + 1 ) / 2;
        while( st <= dr ){
            mid = ( st + dr ) / 2;
            if( s1[mid] - s1[x - 1] < val )
              st = mid + 1;
            else{
                ans = mid;
                dr = mid - 1;
            }
        }
        c = ans * ( s1[ans] - s1[x - 1]) - s2[ans] + s2[x - 1] - ans * (s1[y]- s1[ans]) + s2[y] - s2[ans];
        cout << ans << " " << c << "\n";
    }

    return 0;
}