import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class VincentWA3 {
	private static void read() throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String NS = br.readLine();
		String[] HS = br.readLine().split(" ");
		br.close();
		int N = Integer.parseInt(NS);
		long[] H = new long[N];
		for (int i = 0; i < N; i++) {
			H[i] = Integer.parseInt(HS[i]);
		}

		long[] a = score(H);
		for (int i = 0; i < N-1-i; i++) {
			long l = H[i];
			H[i] = H[N-1-i];
			H[N-1-i] = l;
		}
		a = max(score(H), a);
		System.out.println(a[1] == 0 ? "0" : (a[0] + "/" + a[1]));
	}
	
	private static long[] max(long[] a, long[] b) {
		return a[0] * b[1] > a[1] * b[0] ? a : b;
	}

	private static long[] distance(long[] H, int x, int z) {
		long n = H[z] - H[x + 1];
		long d = H[x] - H[x + 1];
		long g = gcd(n, d);
		n /= g;
		d /= g;
		return new long[] { (z - x - 1) * d + n, d };
	}

	private static long gcd(long a, long b) {
		while (b != 0) {
			a %= b;
			if (a == 0) {
				return b;
			}
			b %= a;
		}
		return a;
	}
	
	private static long[] score(long[] H) {
		int N = H.length;
		long[] best = new long[] {0, 1};
		int[] front = new int[N];
		int c = -1;

		for (int i = 0; i < N; i++) {
			while (c >= 0 && H[i] > H[front[c]]) {
				c--;
			}
			if (c != -1) {
				best = max(best,distance(H, front[c], i));
			}
			c++;
			front[c] = i;
		}
		return best;
	}

	public static void main(String[] args) throws IOException {
		read();
	}
}

