#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 2;
const int NaN = 100;
double x[N], y[N];
double a[N], b[N];
const double EPS = 1e-8;
pair<double, double> solve(double a, double b, double c) {
  double d = b * b - 4 * a * c;
  d = max(0.0, d);
  return make_pair((-b + sqrt(d)) / 2 / a, (-b - sqrt(d)) / 2 / a);
}
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> x[i];
  }
  for (int i = 0; i < n; i++) {
    cin >> y[i];
  }
  auto sol = solve(1, -x[0] - y[0], x[0]);
  b[0] = sol.first;
  a[0] = sol.second;
  double c1 = b[0], c2 = a[0];
  for (int i = 1; i < n; i++) {
    sol = solve(1, (c1 - c2 - x[i] - y[i]), x[i] - c1 * (x[i] + y[i]));
    b[i] = sol.first;
    a[i] = x[i] + y[i] - b[i];
    double val1 = a[i] * (c1 + b[i]);
    double val2 = x[i] - b[i] * c2;
    if (abs(val1 - val2) > 1e-6 || b[i] > 1) {
      b[i] = sol.second;
      a[i] = x[i] + y[i] - b[i];
    }
    c1 += b[i];
    c2 += a[i];
  }
  for (int i = 0; i < n; i++) {
    printf("%.10lf ", a[i]);
  }
  cout << "\n";
  for (int i = 0; i < n; i++) {
    printf("%.10lf ", b[i]);
  }
  return 0;
}
