#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e9 + 7;
class Matrix2 {
 public:
  long long val[2][2];
  Matrix2() {
    for (int i = 0; i < 2; i++)
      for (int j = 0; j < 2; j++) val[i][j] = 0;
  }
};
Matrix2* R = new Matrix2();
void matrix_mult_mod(Matrix2* A, Matrix2* B) {
  for (int i = 0; i < 2; i++)
    for (int j = 0; j < 2; j++) {
      R->val[i][j] = 0;
      for (int k = 0; k < 2; k++) {
        R->val[i][j] += A->val[i][k] * B->val[k][j];
      }
      R->val[i][j] %= MOD;
    }
  for (int i = 0; i < 2; i++)
    for (int j = 0; j < 2; j++) A->val[i][j] = R->val[i][j];
}
Matrix2* Q = new Matrix2();
void matrix_pow_mod(Matrix2* A, long long p) {
  for (int i = 0; i < 2; i++)
    for (int j = 0; j < 2; j++) Q->val[i][j] = i == j;
  for (; p; p /= 2) {
    if (p & 1) {
      matrix_mult_mod(Q, A);
    }
    matrix_mult_mod(A, A);
  }
  for (int i = 0; i < 2; i++)
    for (int j = 0; j < 2; j++) A->val[i][j] = Q->val[i][j];
}
long long pow_mod(long long x, long long p) {
  long long ans = 1;
  for (; p; p /= 2) {
    if (p & 1) {
      ans *= x;
      ans %= MOD;
    }
    x *= x;
    x %= MOD;
  }
  return ans;
}
long long div_by_2(long long x) {
  x *= (MOD + 1) / 2;
  x %= MOD;
  return x;
}
int main() {
  int n;
  scanf("%d", &n);
  long long q = 2;
  Matrix2* A = new Matrix2();
  A->val[0][0] = 1;
  A->val[0][1] = 1;
  A->val[1][0] = 2;
  A->val[1][1] = 0;
  for (int i = 0; i < n; i++) {
    long long a;
    scanf("%I64d", &a);
    q = pow_mod(q, a);
    matrix_pow_mod(A, a);
  }
  q = div_by_2(q);
  long long p = div_by_2(A->val[1][1]);
  printf("%I64d/%I64d\n", p, q);
  return 0;
}
