#include <bits/stdc++.h>
using namespace std;
long long t[111111], v[111111];
long long seg[500000], lazy[500000];
void push(int n, int l, int r) {
  if (!lazy[n]) return;
  seg[n] += lazy[n];
  if (l != r) {
    lazy[n * 2] += lazy[n];
    lazy[n * 2 + 1] += lazy[n];
  }
  lazy[n] = 0;
}
long long Ans[111111];
void add(int n, int l, int r, int L, int R, long long a) {
  if (L > R) return;
  push(n, l, r);
  if (l > R || r < L) return;
  if (l >= L && r <= R) {
    lazy[n] += a;
    push(n, l, r);
    return;
  }
  add(n * 2, l, (l + r) / 2, L, R, a);
  add(n * 2 + 1, 1 + (l + r) / 2, r, L, R, a);
}
long long get(int n, int l, int r, int p) {
  push(n, l, r);
  if (l > p || r < p) return 0;
  if (l == p) return seg[n];
  return get(n * 2, l, (l + r) / 2, p) + get(n * 2 + 1, (l + r) / 2 + 1, r, p);
}
long long tot[111111];
long long event[111111];
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) cin >> v[i];
  for (int i = 0; i < n; i++) {
    cin >> t[i];
    tot[i] = (i ? tot[i - 1] : 0) + t[i];
  }
  for (int i = 0; i < n; i++) {
    int l = i - 1, r = n - 1;
    int p = -1;
    while (l <= r) {
      int m = (l + r) / 2;
      if (tot[m] - (i ? tot[i - 1] : 0) > v[i]) {
        r = m - 1;
      } else
        p = m, l = m + 1;
    }
    int rem = v[i] - (tot[p] - (i ? tot[i - 1] : 0));
    if (p >= i) {
      event[i]++;
      event[p + 1]--;
    }
    Ans[p + 1] += rem;
  }
  int c = 0;
  for (int i = 0; i < n; i++) {
    c += event[i];
    cout << Ans[i] + 1ll * c * t[i] << ' ';
  }
  return 0;
}
