만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

제곱수 원순열

시간 제한2초메모리 제한1024 MB

요약
1부터 N까지의 정수를 한 번씩 사용해 원형으로 나열하고, 이웃한 두 수의 합이 모두 완전제곱수가 되는 순열을 찾습니다. 그런 순열이 없으면 -1을 출력합니다.
난이도

보통10점 중 7점

유형
그래프, 정수론, 구현
정답자
아직 제출이 없습니다

문제

11부터 NN까지의 정수를 각각 한 번씩만 사용하여 다음 조건을 만족하는 수열 A_1A\_1, A_2A\_2, ⋯\cdots, A_NA\_N을 출력하시오.

  • A_i+A_i+1A\_i + A\_{i + 1}은 제곱수이다. (1≤i<N)(1 \le i \lt N)
  • A_1+A_NA\_1 + A\_N은 제곱수이다.

입력

총 TT개의 테스트 케이스가 입력으로 주어지며, 첫 번째 줄에 TT가 주어진다.

그 다음 줄부터 각 테스트 케이스마다 하나의 줄에 양의 정수 NN이 주어진다.

출력

각 테스트 케이스마다 주어진 순서대로 한 개의 줄에 출력한다.

  • 조건을 만족하는 수열이 있다면 수열 A_1A\_1, A_2A\_2, ⋯\cdots, A_NA\_N을 공백으로 구분하여 출력한다.
  • 조건을 만족하는 수열이 없다면 -1을 출력한다.

제한

  • 1≤T≤5 0001 \le T \le 5\,000
  • 2≤N≤1072 \le N \le 10^7
  • 모든 테스트 케이스의 NN의 합은 10710^7을 넘지 않는다.

예제1

  1. 예제 1

    입력
    2
    2
    32
    
    예상 출력
    -1
    1 8 28 21 4 32 17 19 30 6 3 13 12 24 25 11 5 31 18 7 29 20 16 9 27 22 14 2 23 26 10 15