작은 마을에 사는 사람 n명이 공동체 P를 이룬다. P에 속한 두 사람은 서로 친할 수도 있고, 한 번도 만난 적이 없을 수도 있다. 서로 다른 두 사람 x와 y의 친밀도는 값 f(x,y)로 나타내며, f(x,y)=f(y,x)이다.
P의 부분집합 F를 모임이라고 부른다. F에 속한 사람 수를 ∣F∣라고 하자. ∣F∣가 n도 아니고 1도 아니며, F 안의 서로 다른 두 사람 사이의 친밀도 중 최댓값이 F 안의 사람과 F 밖의 사람 사이의 친밀도 중 최솟값보다 항상 작으면 F를 어색한 모임이라고 한다. 즉 다음 두 조건을 모두 만족하는 F가 어색한 모임이다.
1<∣F∣<n
max{f(x,y)∣x=y, x∈F, y∈F}<min{f(x′,y′)∣x′∈F, y′∈P−F}
서로 다른 두 사람의 친밀도가 모두 주어질 때, P의 어색한 모임이 몇 개인지 세는 프로그램을 작성하시오.
예를 들어 공동체 P에 x, y, z 세 사람이 있다고 하자. 1<∣F∣<3을 만족하는 모임은 {x,y}, {y,z}, {z,x} 세 가지다. 친밀도가 f(x,y)=8, f(y,z)=3, f(z,x)=5로 주어지면 이 가운데 어색한 모임은 {y,z} 하나뿐이므로 답은 1이다.
입력은 표준 입력으로 받는다. 첫 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫 줄에는 공동체 P의 사람 수 n이 주어진다 (1≤n≤1000). 사람은 1번부터 n번까지 번호로 구분한다. 이어지는 n−1개의 줄에는 친밀도가 주어진다. i번째 줄에는 n−i개의 정수 hi,i+1,hi,i+2,…,hi,n이 공백 하나로 구분되어 주어진다. 여기서 hi,j는 사람 i와 사람 j의 친밀도 f(i,j)이다 (1≤i<j≤n, 1≤hi,j≤106).
출력은 표준 출력으로 한다. 각 테스트 케이스마다 정확히 한 줄을 출력한다. 그 줄에는 P의 어색한 모임의 개수를 출력한다.