제곱수 덱 1
시간 제한3초메모리 제한512 MB
두 덱에서 카드를 하나씩 뽑아 합이 제곱수일 때만 합치고 뽑은 두 수의 차를 기록할 때, 1부터 N까지의 카드를 하나로 합치며 기록된 수의 곱을 최소로 만드는 값을 구한다.
문제
이상 이하의 정수가 순서대로 적힌 장의 카드가 있다. 각각의 카드는 초기에 자기 자신만으로 이루어진 덱이다.
와파스는 덱을 합칠 때마다 종이에다 수를 적는다. 처음에는 종이에 이 적혀있다.
와파스는 다음 규칙을 따라 두 덱을 골라 하나의 덱으로 합친다.
- 두 덱을 합치기 전, 두 덱에서 카드를 각각 한 장씩 뽑는다.
- 뽑은 두 카드에 적힌 수를 , 라고 했을 때, 가 반드시 제곱수여야 한다. 이러한 카드를 뽑는 것이 불가능하다면 이 두 덱은 합칠 수 없다.
- 두 덱을 하나로 합친 후에는 종이에 를 적는다.
장의 카드를 하나의 덱으로 합친 후, 와파스는 종이에 적힌 개의 수를 모두 곱한 값인 를 구한다.
와파스는 의 값을 최소로 하여 덱을 모두 합치고 싶어한다. 와파스를 위해 의 최솟값을 구해보자.
입력
양의 정수 이 주어진다.
출력
의 최솟값을 로 나눈 나머지를 출력한다.
만약 장의 카드를 하나의 덱으로 합칠 수 없다면 -1을 출력한다.