Pagini recente » Cod sursa (job #1556941) | Monitorul de evaluare | Cod sursa (job #189255) | Cod sursa (job #3335504) | Cod sursa (job #3342908)
#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;
}