#include <bits/stdc++.h>
using namespace std;
const int MaxN = 1e5 + 10;
const int INF = 1e9;
const int MOD = 1e9 + 7;
int n;
long double a[MaxN], b[MaxN], ca[MaxN], cb[MaxN];
pair<long double, long double> solve(long double p, long double q) {
  long double det = sqrt(fabs(p * p - 4 * q));
  return make_pair((-p - det) / 2.0, (-p + det) / 2.0);
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> n;
  for (int i = 1; i <= n; ++i) {
    cin >> ca[i];
  }
  for (int i = 1; i <= n; ++i) {
    cin >> cb[i];
  }
  pair<long double, long double> f = solve(-(ca[1] + cb[1]), ca[1]);
  a[1] = f.first;
  b[1] = f.second;
  long double ap = 0, bp = 0;
  for (int i = 2; i <= n; ++i) {
    ap += b[i - 1];
    bp += a[i - 1];
    long double ce = ca[i] + cb[i];
    long double P = (ap - bp - cb[i] - ca[i]);
    long double Q = ca[i] - ap * (ca[i] + cb[i]);
    pair<long double, long double> f = solve(P, Q);
    for (int it = 0; it < 2; ++it) {
      b[i] = f.second;
      a[i] = ce - b[i];
      bool ok = true;
      if (a[i] < 0 || a[i] > 1) {
        ok = false;
      }
      if (abs(cb[i] - a[i] * (1 - ap) - b[i] * (1 - bp) + a[i] * b[i]) > 1e-9) {
        ok = false;
      }
      if (ok) break;
      swap(f.first, f.second);
    }
  }
  cout.precision(6);
  for (int i = 1; i <= n; ++i) {
    cout << fixed << a[i] << (i == n ? '\n' : ' ');
  }
  for (int i = 1; i <= n; ++i) {
    cout << fixed << b[i] << (i == n ? '\n' : ' ');
  }
  return 0;
}
