아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Strongbox

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

요약
k개의 다이얼 위치 중 마지막 하나만 금고를 여는 상황에서, 닫힘 성질 (x+y) mod n을 만족하는 열림 위치 개수의 최댓값을 구한다.
난이도

보통10점 중 7점

유형
정수론, 수학, 완전 탐색
정답자
아직 제출이 없습니다

문제

바이테아사르(Byteasar)는 도난 방지 장치를 시험하고 인증하는 일을 한다. 그는 새로운 종류의 금고를 시험용으로 받았는데, 바로 조합 금고(combinatorial safe)이다. 회전식 다이얼로 여는 점은 보통의 다이얼 금고와 같지만, 열리는 방식이 다르다.

다이얼은 00번부터 n−1n-1번까지 번호가 매겨진 nn가지 위치로 맞출 수 있다. 이 위치들 중 일부는 금고를 열고, 나머지는 열지 못한다. 금고를 여는 위치들의 집합에는 다음과 같은 조합적 성질이 있으며, 금고의 이름도 여기서 비롯된다. 즉, xx와 yy가 모두 여는 위치라면 (x+y) mod n(x + y) \bmod n 역시 여는 위치이다. 이 성질은 x=yx = y인 경우에도 성립한다.

바이테아사르는 서로 다른 kk개의 위치 m1,m2,…,mkm_1, m_2, \ldots, m_k를 시도했다. 이 중 앞의 k−1k-1개 m1,m2,…,mk−1m_1, m_2, \ldots, m_{k-1}로는 금고가 열리지 않았고, 오직 마지막 위치 mkm_k로만 열렸다. 그는 남은 위치를 더 시도할 생각이 없다. 그가 시도해 본 위치들로부터 알 수 있는 정보만으로, 금고를 열 수 있는 위치의 최대 개수를 구하여라.

입력

첫째 줄에 두 정수 nn과 kk가 공백 하나로 구분되어 주어진다. 1≤k≤250 0001 \le k \le 250\,000이고 k≤n≤1014k \le n \le 10^{14}이다.

둘째 줄에 서로 다른 kk개의 정수 m1,m2,…,mkm_1, m_2, \ldots, m_k가 공백 하나로 구분되어 주어진다. 0≤mi<n0 \le m_i < n이다.

입력은 항상 위 설명을 만족하는 어떤 조합 금고에 대응하도록 주어진다. 즉, 위치 m1,…,mk−1m_1, \ldots, m_{k-1}로는 열리지 않고 위치 mkm_k로는 열리는 금고가 반드시 존재한다.

출력

금고를 열 수 있는 다이얼 위치의 최대 개수를 정수 하나로 첫째 줄에 출력한다.

예제3

  1. 예제 1

    입력
    42 5
    28 31 10 38 24
    
    예상 출력
    14
    
  2. 예제 2

    입력
    100 1
    7
    
    예상 출력
    100
    
  3. 예제 3

    입력
    12 4
    1 5 7 9
    
    예상 출력
    4