Cod sursa(job #3342908)

Utilizator filipdanieloanFilip-Daniel Oancea filipdanieloan Data 26 februarie 2026 08:20:54
Problema Cuburi2 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <bits/stdc++.h>
using namespace std;

#define int long long

signed main() {
    cin.tie(nullptr)->sync_with_stdio(false);
#ifndef LOCAL
    freopen("cuburi2.in", "r", stdin);
    freopen("cuburi2.out", "w", stdout);
#endif

    int n, m; cin >> n >> m;
    vector<int> v(n+1), sp(n+1);
    for(int i = 1; i <= n; ++i)
        cin >> v[i];

    for(int i = 1; i <= n; ++i)
        sp[i] = sp[i-1] + v[i];

    while(m--) {
        int x, y; cin >> x >> y;
        int nrElem = sp[y] - sp[x-1];
        int st = x, dr = y, ans = y+1;
        while(st <= dr) {
            int mid = (st + dr) >> 1;
            if(sp[mid] - sp[st-1] >= (nrElem + 1) / 2) {
                ans = mid;
                dr = mid - 1;
            } else {
                st = mid + 1;
            }
        }
        // cum calculez cost?

        cout << ans << ' ' << 0 << '\n';
    }

    return 0;
}