fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define int long long
  5. #define nn '\n'
  6.  
  7. const int N = 5e5 + 5;
  8.  
  9. int n, m;
  10. int a[N], b[N];
  11. int ps[N];
  12. int mx[N];
  13.  
  14. signed main() {
  15. ios::sync_with_stdio(false);
  16. cin.tie(nullptr);
  17.  
  18. cin >> n >> m;
  19.  
  20. for(int i = 1; i <= n; i++) cin >> a[i];
  21. for(int i = 1; i <= m; i++) cin >> b[i];
  22.  
  23. sort(b + 1, b + m + 1);
  24.  
  25. for(int i = 1; i <= m; i++){
  26. ps[i] = ps[i - 1] + b[i];
  27. }
  28.  
  29. for(int i = 1; i <= m; i++){
  30. int need = b[i] - ps[i - 1];
  31. mx[i] = max(mx[i - 1], need);
  32. }
  33.  
  34. for(int i = 1; i <= n; i++){
  35. int r = upper_bound(mx + 1, mx + m + 1, a[i]) - mx - 1;
  36.  
  37. cout << a[i] + ps[r] << ' ';
  38. }
  39.  
  40. return 0;
  41. }
Success #stdin #stdout 0.01s 7676KB
stdin
5 4
4 6 1 2 9
7 31 2 15
stdout
6 30 1 4 64