도박과 사각형

가능한 모든 직사각형에서 각 값 1부터 5의 개수를 제곱해 더한 점수의 기댓값을 기약분수로 출력한다.

어려움8조합론수학누적 합아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

1×1 크기의 정사각형 칸이 정사각형 모양으로 놓인 NNNN열 격자판이 있고, 각 칸에는 1 이상 5 이하의 자연수가 하나씩 적혀 있다. 당신은 이 격자판으로 도박장을 운영하려고 한다.

N=4N = 4일 때 가능한 격자판의 예

도박 방법은 다음과 같다. 먼저 격자판의 각 변을 연장해 세로선 N+1N+1개와 가로선 N+1N+1개를 긋는다. 그다음 고객에게 서로 다른 가로선 2개와 서로 다른 세로선 2개를 고르게 한다. 고객은 선이 어디에 그어져 있는지 모르는 채로 고르므로, 가능한 N(N+1)2×N(N+1)2\frac{N(N+1)}{2} \times \frac{N(N+1)}{2}가지 중 하나를 균등한 확률로 고른다.

격자판에 세로선 5개와 가로선 5개가 있고, 고객은 이 중 세로선 두 개와 가로선 두 개를 고른다

그 후 고객이 고른 네 선이 둘러싸는 직사각형에 점수를 매겨, 그 점수만큼의 돈을 고객에게 준다. 점수를 매기는 방법은 간단하다. 직사각형 안에 있는 1, 2, 3, 4, 5의 개수를 각각 c1c_1, c2c_2, c3c_3, c4c_4, c5c_5라 하면, 고객이 받는 점수 SS는 아래 식으로 정해진다.

S=1×c12+2×c22+3×c32+4×c42+5×c52S = 1 \times c_1^2 + 2 \times c_2^2 + 3 \times c_3^2 + 4 \times c_4^2 + 5 \times c_5^2

개수에 제곱을 붙였으므로 고객의 선택으로 만들어진 직사각형이 커질수록 점수 SS가 훨씬 빠르게 늘어난다. 이는 도박성을 키워 더 많은 고객을 끌어모으는 데 도움이 된다. 이제 남은 일은 판돈을 정하는 것이고, 그러려면 고객이 받는 점수 SS의 기댓값을 알아야 한다.

격자판이 주어질 때 SS의 기댓값을 구하는 프로그램을 작성하라.

입력

첫 줄에 격자판의 크기를 나타내는 자연수 NN (1N10001 \le N \le 1000)이 주어진다.

다음 NN개의 줄에는 각각 1 이상 5 이하의 자연수 NN개가 공백을 사이에 두고 주어진다. ii번째 줄의 jj번째 수 (1iN1 \le i \le N, 1jN1 \le j \le N)는 격자판의 위에서 ii번째 행, 왼쪽에서 jj번째 열에 적힌 수를 뜻한다.

출력

첫 줄에 SS의 기댓값을 기약분수 p/q 꼴로 출력한다. ppqq는 정수이고, q1q \ge 1이며, ppqq의 최대공약수는 1이다. 기댓값이 정수여도 분모를 생략하지 말고 p/1 꼴로 출력한다. 예를 들어 기댓값이 103\frac{10}{3}이면 10/3을, 3이면 3/1을 출력한다.