#include <bits/stdc++.h>
using namespace std;
const int N = 100000 + 5;
int n, s[N];
int a[N], b[N];
int od[N];
inline bool cmp_int_od_s(int x, int y) { return s[x] < s[y]; }
int main() {
  puts("YES");
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) scanf("%d", &s[i]);
  if (n < 3) {
    if (n == 1)
      printf("%d\n0\n", s[1]);
    else
      printf("%d 0\n0 %d\n", s[1], s[2]);
    return 0;
  }
  for (int i = 1; i <= n; ++i) od[i] = i;
  sort(od + 1, od + n + 1, cmp_int_od_s);
  int sz = (n + 2) / 3;
  for (int i = 1; i <= sz; ++i) {
    a[od[i]] = i - 1;
    b[od[i]] = s[od[i]] - i + 1;
  }
  for (int i = sz + 1; i <= 2 * sz && i <= n; ++i) {
    b[od[i]] = i - 1;
    a[od[i]] = s[od[i]] - i + 1;
  }
  for (int i = 1; i <= n - 2 * sz; ++i) {
    b[od[n - i + 1]] = i - 1;
    a[od[n - i + 1]] = s[od[n - i + 1]] - b[od[n - i + 1]];
  }
  for (int i = 1; i <= n; ++i) printf("%d ", a[i]);
  putchar('\n');
  for (int i = 1; i <= n; ++i) printf("%d ", b[i]);
  putchar('\n');
  return 0;
}
