아즈버의 이빨 자국
시간 제한3초메모리 제한1024 MB
찍힌 자국들의 위치가 주어질 때, 두 점을 거리 k만큼 떨어뜨려 반복해서 찍어 만들 수 있는 양의 정수 k를 모두 구한다.
문제
집안의 먹을 것들이 계속해서 사라지는 당신은 이웃집의 곰 아즈버(azber)를 의심하고 있다. 오늘, 당신은 드디어 결정적인 증거를 찾아냈는데, 그것은 바로 쵸코바에 찍힌 이빨 자국이었다!
당신은 아즈버가 커다란 두 송곳니로 쵸코바를 물어 여러 번 자국을 남겼으리라 생각하고 있다.
쵸코바를 수직선이라고 가정하자. 아즈버는 다음과 같은 규칙을 따라 쵸코바에 이빨 자국을 남길 수 있다.
- 처음에 쵸코바는 아무 자국 없이 깨끗한 상태이다.
- 아즈버의 송곳니 사이 간격이 일 때, 아즈버는 이상의 수 를 골라 쵸코바의 와 두 위치에 자국을 남기는 행동을 회 이상 반복할 수 있다.
- 같은 위치에 여러 번 자국을 남기더라도 마지막에 남긴 자국만 보인다.
당신은 쵸코바에 남겨진 이빨 자국들을 토대로, 송곳니 사이의 간격 가 될 수 있는 수치들을 모두 기록해 둔 뒤 나중에 아즈버를 만났을 때 확인해 보려고 한다.
이빨 자국들의 위치가 주어졌을 때, 아즈버의 송곳니 사이 간격이 될 수 있는 수를 모두 출력해 보자!
입력
첫째 줄에 쵸코바에 찍힌 이빨 자국의 개수 이 주어진다.
둘째 줄에 개의 이빨 자국이 찍힌 위치를 나타내는 정수 가 공백을 사이에 두고 오름차순으로 주어진다. 는 중복되지 않는다.
출력
첫째 줄에 아즈버의 송곳니 사이 간격이 될 수 있는 수의 개수 를 출력한다.
가 이상일 경우, 둘째 줄에 공백을 사이에 두고 송곳니 사이 간격이 될 수 있는 수를 오름차순으로 출력한다.