문제
임의의 정수 수열 이 주어졌을 때 다음을 판별하는 프로그램을 작성하라.
* 해당 수열이 등비 수열인가( 여기서 등비 수열이란, ai = c * b(i-1)를 만족하는 수열을 뜻하며, 앞의 식에서 c와 b는 임의의 정수다. ) * 아닐 경우 위의 수열의 숫자 하나를 없앴을 경우 등비 수열이 되는가. * 위의 두 경우를 만족하지 않는 경우.
예를 들어
<2, -4, 8> 의 경우 c = 2, b = -2를 가지는 등비수열이 되며, <0, 0, 0, 0> 의 경우에는 c = 0, b = 0인 등비수열이 가능하다. < 2, 4, 8, 17, 16 > 의 경우 등비수열이 아니나, 17을 제거할 경우 c = 2, b = 2를 가지는 등비 수열이 가능하다.
입력
입력은 여러개의 테스트 케이스로 이뤄지며 입력의 첫 줄에는 테스트 케이스의 수 T가 입력된다. T는 1이상 10이하의 정수다.
각 테스트 케이스의 첫 줄에는 수열을 이루는 정수의 개수 n(1≤n≤105)이 입력된다.
각 테스트 케이스의 둘째 줄에는 n개의 -104 이상 104 이하의 정수가 차례대로 입력되는데 입력되는 순서대로 a1 a2 … an을 뜻한다.
출력
입력에 대해서 맨 처음의 조건을 만족할 경우 0을 출력한다.
첫 조건을 만족하지 못하고 두번째 조건을 만족할 경우 1을 출력하고 두 경우 다 만족하지 못할 경우 2를 출력한다.
예제
3
4
3 6 12 24
4
-8 -16 24 -32
4
0 1 2 3
12