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

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

아즈버의 이빨 자국

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

요약
찍힌 자국들의 위치가 주어질 때, 두 점을 거리 k만큼 떨어뜨려 반복해서 찍어 만들 수 있는 양의 정수 k를 모두 구한다.
난이도

보통10점 중 7점

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

문제

집안의 먹을 것들이 계속해서 사라지는 당신은 이웃집의 곰 아즈버(azber)를 의심하고 있다. 오늘, 당신은 드디어 결정적인 증거를 찾아냈는데, 그것은 바로 쵸코바에 찍힌 이빨 자국이었다!

당신은 아즈버가 커다란 두 송곳니로 쵸코바를 물어 여러 번 자국을 남겼으리라 생각하고 있다.

쵸코바를 수직선이라고 가정하자. 아즈버는 다음과 같은 규칙을 따라 쵸코바에 이빨 자국을 남길 수 있다.

  • 처음에 쵸코바는 아무 자국 없이 깨끗한 상태이다.
  • 아즈버의 송곳니 사이 간격이 k (k>0)k\ (k \gt 0)일 때, 아즈버는 00 이상의 수 xx를 골라 쵸코바의 xx와 x+kx + k 두 위치에 자국을 남기는 행동을 00회 이상 반복할 수 있다.
  • 같은 위치에 여러 번 자국을 남기더라도 마지막에 남긴 자국만 보인다.

당신은 쵸코바에 남겨진 이빨 자국들을 토대로, 송곳니 사이의 간격 kk가 될 수 있는 수치들을 모두 기록해 둔 뒤 나중에 아즈버를 만났을 때 확인해 보려고 한다.

이빨 자국들의 위치가 주어졌을 때, 아즈버의 송곳니 사이 간격이 될 수 있는 수를 모두 출력해 보자!

입력

첫째 줄에 쵸코바에 찍힌 이빨 자국의 개수 NN이 주어진다. (2≤N≤4,000)(2 \le N \le 4\\,000)

둘째 줄에 NN개의 이빨 자국이 찍힌 위치를 나타내는 정수 x_ix\_i가 공백을 사이에 두고 오름차순으로 주어진다. x_ix\_i는 중복되지 않는다. (0≤x_i≤109)(0 \le x\_i \le 10^9)

출력

첫째 줄에 아즈버의 송곳니 사이 간격이 될 수 있는 수의 개수 KK를 출력한다.

KK가 11 이상일 경우, 둘째 줄에 공백을 사이에 두고 송곳니 사이 간격이 될 수 있는 수를 오름차순으로 출력한다.

예제3

  1. 예제 1

    입력
    4
    0 5 10 15
    
    예상 출력
    2
    5 10
    
  2. 예제 2

    입력
    4
    0 1 3 5
    
    예상 출력
    0
    
  3. 예제 3

    입력
    2
    5 28
    
    예상 출력
    1
    23