나머지가 같아지도록

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

요약
서로 다른 정수 N개로 이루어진 집합 A와 큰 K가 주어질 때, S(A)의 모든 s에 대해 s^K가 S(A^M)에 속하게 하는 최소 양의 정수 M을 구하거나 존재하지 않으면 -1을 출력한다.
난이도

어려움10점 중 9점

유형
정수론, 수학, 조합론, 구현
정답자
아직 제출이 없습니다

문제

나머지와 나누어떨어짐에 대한 정의를 양의 정수뿐만 아니라 정수로 확장시키면 다음과 같다.

  • 어떤 정수 aa를 양의 정수 qq로 나눈 나머지 rr은 a=qx+ra=qx+r을 만족하는 정수 xx가 존재하며, 0≤r\<q0\le r\<q인 수로 정의한다. 그리고 이를 a≡r(modq)a\equiv r\pmod q와 같이 나타낼 수 있다.
  • 마찬가지로 어떤 정수 aa가 양의 정수 qq로 나누어떨어짐은, aa를 qq로 나눈 나머지가 00인 경우이다.

정수 집합 AA가 주어진다. 이때, S(A)S\left( A \right)과 양의 정수 MM에 대하여 AMA^M을 다음과 같이 정의한다.

  • S\left( A \right) :=\left\\{ q\in\mathbb{Z}^{+}\middle |\exists r\ne 0:\forall x\in A,x\equiv r\pmod q\land\gcd{\left( q,x \right)} =1 \right\\}
  • A^M:=\left\\{ \operatorname{sgn}\left( x \right)\cdot\left\lvert x \right\rvert^M\middle |x\in A \right\\}
    • 단, sgn⁡(x):={x∣x∣if x≠0 0if x=0\operatorname{sgn}\left( x \right) :=\begin{cases}\cfrac x{|x|}&\text{if } x\ne 0\\\ 0&\text{if } x=0\end{cases}로 정의되는 부호함수이다.

위의 정의를 풀어서 말하면 AA의 각 원소를 qq로 나눈 나머지가 00이 아닌 값으로 모두 같으며, 모든 AA의 원소와 qq가 서로소인 양의 정수 qq의 집합을 S(A)S\left( A \right)라고 정의한다. 또한 양의 정수 MM에 대하여 AA의 각 원소와 부호는 같고 절댓값은 MM제곱인 원소들로 이루어진 집합을 AMA^M이라 정의한다.

NN개의 서로 다른 원소로 이루어진 정수 집합 AA와 음이 아닌 정수 KK가 주어질 때, 다음을 만족하는 최소의 양의 정수 MM을 찾아보자.

  • ∀s∈S(A),sK∈S(AM)\forall s\in S\left( A \right) ,s^K\in S\left( A^M \right)

입력

첫 번째 줄에 양의 정수 N(2≤N≤105)N(2\le N\le 10^5)과 K(1≤K≤1017)K(1\le K\le 10^{17})가 공백으로 구분되어 주어진다.

두 번째 줄에 NN개의 서로 다른 정수 A_i(−1018≤A_i≤1018)A\_i(-10^{18}\le A\_i\le 10^{18})가 공백으로 구분되어 오름차순으로 주어진다.

출력

첫 번째 줄에 조건을 만족하는 최소의 양의 정수 MM을 출력한다. 단, 답이 너무 커질 수 있으므로 답을 109+710^9+7로 나눈 나머지를 출력한다.

만약 조건을 만족하는 MM이 존재하지 않는다면 첫 번째 줄에 MM 대신 -1을 출력한다.

예제10

  1. 예제 1

    입력
    2 4
    3 5
    
    예상 출력
    2
    
  2. 예제 2

    입력
    2 5
    3 5
    
    예상 출력
    4
    
  3. 예제 3

    입력
    2 1
    -1 1
    
    예상 출력
    1
    
  4. 예제 4

    입력
    2 2
    -1 1
    
    예상 출력
    -1
    
  5. 예제 5

    입력
    3 100000000000000000
    -1000000000000000000 -371681469282041354 570796326794896615
    
    예상 출력
    487180136
    
  6. 예제 6

    입력
    3 10
    -25 -7 5
    
    예상 출력
    -1
    
  7. 예제 7

    입력
    3 6
    1 15 71
    
    예상 출력
    134456
    
  8. 예제 8

    입력
    2 100000000000000000
    1 123456789864197523
    
    예상 출력
    500000003
    
  9. 예제 9

    입력
    2 100000000000000000
    1 123456789864197524
    
    예상 출력
    0
    
  10. 예제 10

    입력
    4 99999999999999999
    -113 -7 535353535353535293 535353535353535346
    
    예상 출력
    977315351