#include <bits/stdc++.h>
using namespace std;
long long power(long long a, long long b, long long md) {
  return (!b ? 1
             : (b & 1 ? a * power(a * a % md, b / 2, md) % md
                      : power(a * a % md, b / 2, md) % md));
}
const int xn = 1e5 + 10;
const int xm = -20 + 10;
const int sq = 320;
const int inf = 1e9 + 10;
const long long INF = 1e18 + 10;
const long double eps = 1e-15;
const int mod = 1e9 + 7;
const int base = 257;
int n, a[xn];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  cin >> n;
  for (int i = 1; i <= n; ++i) cin >> a[i];
  if (a[n]) return cout << "NO" << '\n', 0;
  if (n == 1) {
    cout << "YES" << '\n' << 0 << '\n';
    return 0;
  }
  if (n == 2) {
    if (a[1]) {
      cout << "YES" << '\n' << "1->0" << '\n';
      return 0;
    }
    return cout << "NO" << '\n', 0;
  }
  if (a[n - 1]) {
    cout << "YES" << '\n';
    for (int i = 1; i < n; ++i) cout << a[i] << "->";
    cout << 0;
    return 0;
  }
  if (!a[n - 2]) {
    cout << "YES" << '\n';
    for (int i = 1; i < n - 2; ++i) cout << a[i] << "->";
    cout << "(0->0)->0";
    return 0;
  }
  int ptr = n - 3;
  while (ptr && a[ptr]) --ptr;
  if (!ptr) return cout << "NO" << '\n', 0;
  cout << "YES" << '\n';
  for (int i = 1; i < ptr; ++i) cout << a[i] << "->";
  cout << "(0->(";
  for (int i = ptr + 1; i < n - 1; ++i) cout << a[i] << "->";
  cout << "0))->0";
  return 0;
}
