Pagini recente » Borderou de evaluare (job #2564250) | Cod sursa (job #3355458) | Cod sursa (job #985022) | Cod sursa (job #1249566) | Cod sursa (job #3342889)
#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 / 2) {
ans = mid;
dr = mid - 1;
} else {
st = mid + 1;
}
}
// cum calculez cost?
cout << ans << " 0\n";
}
return 0;
}