Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int solve(vector<ll> &v, ll target)
- {
- int l = 1, r = v.size() - 1, found = 1;
- while (l <= r)
- {
- int m = l + (r - l) / 2;
- if (v[m] == target)
- {
- return m;
- }
- (v[m] > target ? r = m - 1, found = m : l = m + 1);
- }
- return found;
- }
- int main()
- {
- Warding();
- int n, t;
- cin >> n >> t;
- vector<ll> v2(n), v(n + 1);
- v[0] = 0;
- for (int i = 0; i < n; i++)
- {
- cin >> v2[i];
- v[i + 1] = v[i] + v2[i];
- }
- while (t--)
- {
- ll target;
- cin >> target;
- ll ans = solve(v, target);
- cout << ans << " " << target - v[ans - 1] << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment