IMohammedNasr

Untitled

Feb 16th, 2022
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.69 KB | None | 0 0
  1. int solve(vector<ll> &v, ll target)
  2. {
  3. int l = 1, r = v.size() - 1, found = 1;
  4. while (l <= r)
  5. {
  6. int m = l + (r - l) / 2;
  7. if (v[m] == target)
  8. {
  9. return m;
  10. }
  11. (v[m] > target ? r = m - 1, found = m : l = m + 1);
  12. }
  13. return found;
  14. }
  15.  
  16. int main()
  17. {
  18. Warding();
  19. int n, t;
  20. cin >> n >> t;
  21. vector<ll> v2(n), v(n + 1);
  22. v[0] = 0;
  23. for (int i = 0; i < n; i++)
  24. {
  25. cin >> v2[i];
  26. v[i + 1] = v[i] + v2[i];
  27. }
  28. while (t--)
  29. {
  30. ll target;
  31. cin >> target;
  32. ll ans = solve(v, target);
  33. cout << ans << " " << target - v[ans - 1] << endl;
  34. }
  35. }
Advertisement
Add Comment
Please, Sign In to add comment