아름다운 분할
시간 제한2초메모리 제한256 MB
배열을 두 개의 비어 있지 않은 부분으로 나누고 두 부분 최대공약수 중 작은 값이 최대가 되도록 한다.
문제
피터는 오늘 정수 집합의 최대공약수를 배웠다. 이 개념이 마음에 쏙 들어서 이제는 무엇을 보든 최대공약수를 찾으려 한다.
오늘 컴퓨터 과학 수업에서 선생님이 칠판에 정수 배열을 적었다. 피터는 이 배열의 원소를 두 부분 과 로 나누면 과 가 둘 다 꽤 커진다는 사실을 알아차렸다. 여기서 은 에 속한 모든 수의 최대공약수다.
피터는 이 문제를 일반화하기로 했다. 배열이 주어지면 모든 원소를 비어 있지 않은 두 부분 과 로 나눈다. 원소 하나는 정확히 한 부분에만 들어간다. 가 최대가 되도록 나누고, 그 최댓값을 출력한다.
입력
입력은 여러 개의 테스트로 이루어진다. 첫째 줄에 테스트의 개수 가 주어진다 ().
각 테스트는 두 줄로 주어진다. 첫째 줄에는 배열의 크기 이 주어진다 (). 둘째 줄에는 배열의 원소 가 개 주어진다 ().
한 입력에 들어 있는 모든 테스트의 을 더한 값은 을 넘지 않는다.
출력
각 테스트마다 의 최댓값을 한 줄에 하나씩 출력한다.