#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000010;
const int maxm = 2;
const int mod = 1e9 + 7;
const int inf = 1e9 + 7;
int n, m;
int a[maxn];
int main() {
  int i, j;
  while (scanf("%d", &n) != EOF) {
    for (i = 1; i <= n; i++) {
      scanf("%d", &a[i]);
    }
    if (a[n]) {
      printf("NO\n");
      continue;
    }
    if (n == 1 && a[n] == 0) {
      printf("YES\n0\n");
      continue;
    }
    if (a[n - 1]) {
      printf("YES\n");
      printf("%d", a[1]);
      for (i = 2; i <= n; i++) {
        printf("->%d", a[i]);
      }
      printf("\n");
    } else {
      int flag = 0;
      for (i = 1; i < n - 1; i++) {
        if (!a[i]) {
          flag = i;
          break;
        }
      }
      if (!flag) {
        printf("NO\n");
        continue;
      }
      printf("YES\n");
      for (i = 1; i < flag - 1; i++) {
        printf("%d->", a[i]);
      }
      if (flag > 1) printf("%d->", a[flag - 1]);
      printf("(%d->", a[flag]);
      printf("(%d", a[flag + 1]);
      for (i = flag + 2; i < n; i++) {
        printf("->%d", a[i]);
      }
      printf("))");
      printf("->0\n");
    }
  }
  return 0;
}
