#include <bits/stdc++.h>
template <typename T>
T in() {
  char ch;
  T n = 0;
  bool ng = false;
  while (1) {
    ch = getchar();
    if (ch == '-') {
      ng = true;
      ch = getchar();
      break;
    }
    if (ch >= '0' && ch <= '9') break;
  }
  while (1) {
    n = n * 10 + (ch - '0');
    ch = getchar();
    if (ch < '0' || ch > '9') break;
  }
  return (ng ? -n : n);
}
template <typename T>
inline T Bigmod(T b, T p, T m) {
  if (p == 0)
    return 1;
  else if (!(p & 1))
    return (Bigmod(b, p / 2, m) * Bigmod(b, p / 2, m)) % m;
  else
    return ((b % m) * Bigmod(b, p - 1, m)) % m;
}
template <typename T>
inline T ABS(T a) {
  if (a < 0)
    return -a;
  else
    return a;
}
template <typename T>
inline T Dis(T x1, T y1, T x2, T y2) {
  return sqrt((x1 - x2 * x1 - x2) + (y1 - y2 * y1 - y2));
}
template <typename T>
inline T gcd(T a, T b) {
  if (a < 0) return gcd(-a, b);
  if (b < 0) return gcd(a, -b);
  return (b == 0) ? a : gcd(b, a % b);
}
template <typename T>
inline T lcm(T a, T b) {
  if (a < 0) return lcm(-a, b);
  if (b < 0) return lcm(a, -b);
  return a * (b / gcd(a, b));
}
template <typename T>
T ModInv(T b, T m) {
  return Bigmod(b, m - 2, m);
}
bool isVowel(char ch) {
  ch = toupper(ch);
  if (ch == 'A' || ch == 'U' || ch == 'I' || ch == 'O' || ch == 'E')
    return true;
  return false;
}
template <typename T>
T POW(T b, T p) {
  if (p == 0) return 1;
  if (p % 2 == 0) {
    T s = POW(b, p / 2);
    return s * s;
  }
  return b * POW(b, p - 1);
}
using namespace std;
struct z {
  int x, y;
};
vector<z> v;
int ar[200007], M, n, vis[5009][5009];
void solve() {
  z tp;
  tp.x = 0 + M;
  tp.y = 0 + M;
  v.push_back(tp);
  for (long long int i = 0; i < n; i++) {
    int sm = 0, sm1 = 0;
    for (long long int j = 0; j < i + 1; j++) {
      if (j % 2 == 0) {
        sm1 += ar[j];
      } else
        sm1 += (ar[j] * -1);
      sm += ar[j];
    }
    tp.x = sm + M;
    tp.y = sm1 + M;
    v.push_back(tp);
  }
  int len = v.size();
  int x = M, y = M, f = 1;
  int stx_min = M, sty_min = M;
  int stx_max = M, sty_max = M;
  for (long long int i = 0; i < len - 1; i++) {
    z a, b;
    a = v[i], b = v[i + 1];
    int difx, dify;
    difx = b.x - a.x;
    dify = b.y - a.y;
    if (dify < 0) {
      dify *= -1;
      if (f) {
        x++;
      }
      while (dify) {
        vis[x][y] = 2;
        x++;
        y++;
        dify--;
      }
      f = 0;
    } else {
      if (f == 0 && i) {
        x--;
      }
      while (dify) {
        vis[x][y] = 1;
        x--;
        y++;
        dify--;
      }
      f = 1;
    }
    stx_min = min(stx_min, x);
    stx_max = max(stx_max, x);
    sty_min = min(sty_min, y);
    sty_max = max(sty_max, y);
  }
  int r1, c1, r2, c2;
  r1 = stx_min, c1 = sty_min;
  r2 = stx_max, c2 = sty_max;
  int cnt = 0;
  for (long long int i = 0; i < 5009; i++) {
    if (vis[r1][i]) cnt++;
  }
  if (cnt == 0) r1++;
  cnt = 0;
  for (long long int i = 0; i < 5009; i++) {
    if (vis[r2][i]) cnt++;
  }
  if (cnt == 0) r2--;
  cnt = 0;
  for (long long int i = 0; i < 5009; i++) {
    if (vis[i][c1]) cnt++;
  }
  if (cnt == 0) c1++;
  cnt = 0;
  for (long long int i = 0; i < 5009; i++) {
    if (vis[i][c2]) cnt++;
  }
  if (cnt == 0) c2--;
  for (int i = r1; i <= r2; i++) {
    for (int j = c1; j <= c2; j++) {
      if (vis[i][j] == 1) {
        cout << "/";
      } else if (vis[i][j] == 2) {
        cout << "\\";
      } else
        cout << " ";
    }
    cout << endl;
  }
}
int main() {
  M = 1000;
  cin >> n;
  for (long long int i = 0; i < n; i++) {
    cin >> ar[i];
  }
  solve();
  return 0;
}
