큐브러버
시간 제한1초메모리 제한128 MB
수열이 주어질 때, 모든 위치 i에서 x_i = a*i^3 + b*i^2 + c*i + d를 만족하는 실수 계수 a, b, c, d가 존재하는지 판정한다.
문제
지학이는 3차 다항식(cubic polynomial)을 좋아하는, 잘 알려진 큐브러버(cubelover)이다.
어느 화창한 봄날, 지학이는 아파트 놀이터에서 승현이가 길이 의 정수 수열 을 가지고 노는 것을 보았다. 지학이는 그 아파트의 짱이었고, 승현이보다 45일이나 먼저 태어난 형이었다. 지학이는 승현이를 보자마자 그 수열을 빼앗아 갔다.
승현이가 그 자리에서 엉엉 울기 시작하자, 마음이 약해진 지학이는 승현이가 인 모든 정수 에 대해
를 만족하는 실수 , , , 를 찾으면 수열을 돌려주겠다고 약속했다. (엄밀히 말하면 3차 다항식은 이어야 하지만, 지학이는 그 정도로 엄격하게 굴 생각은 없어서 도 허용한다.)
간만에 학교 밖으로 나와 외출을 즐기던 당신은, 울고 있는 승현이와 눈이 마주쳤다. 승현이는 당신에게 곧장 달려와, 그러한 실수 , , , 를 빨리 찾아 달라고 졸랐다. 당신은 과연 승현이의 눈물을 닦아 줄 수 있는가?
입력
입력은 여러 개의 테스트 케이스로 이루어진다. 첫 번째 줄에 테스트 케이스의 개수 () 가 주어진다.
이후 개의 줄에 각 테스트 케이스가 주어진다. 각 줄은 수열의 길이인 정수 () 으로 시작하고, 이어서 개의 정수가 주어진다. 그중 번째 정수가 () 이다.
출력
각 테스트 케이스마다, 를 만족하는 실수 , , , 가 존재하면 YES 를, 존재하지 않으면 NO 를 한 줄에 하나씩 출력한다.
힌트
첫 번째 테스트 케이스에서 가능한 답 중 하나는 , , , 이다.