가희와 3단 고음

면접 대비

시간 제한1.5초메모리 제한256 MB

요약
음표 수열과 첫 항 A, 공차 D인 등차수열이 주어질 때, 이 등차수열의 항을 순서대로 가장 많이 골라낼 수 있는 개수를 구한다.
난이도

보통10점 중 4점

유형
그리디, 배열, 투 포인터, 구현
정답자
아직 제출이 없습니다

문제

I'm in my dream~eam~eam ♬

3단 고음에 감명을 받은 가희는 고음 경진대회를 참관하기로 했다. 음의 계이름을 수로 표현해보자. '1옥타브 도'를 1로 표현하고 1음 올라갈 때마다 그 음을 표현하는 수도 1씩 커진다고 생각할 수 있다. 음 A를 시작으로 D음씩 올리면서 고음을 부르는 경우는 첫항이 A, 공차가 D인 등차수열로 표현되며, 이러한 등차수열의 항의 개수를 X라 할 때, 이 등차수열을 X단 고음이라고 한다. 아래는 A = 1, D = 2인 6단 고음이다.

이러한 경진대회에는 문제가 있었는데, 한 명 이상의 참가자들이 동시에 고음을 부르는 탓에 심사를 제대로 할 수 없다는 것이다. 그래서 우리는 수로 표현된 참가자들의 음이 순서대로 주어졌을 때 가능한 경우 중, 음 A를 시작으로 D음씩 올라가는 X단 고음으로 가능한 가장 큰 X를 구하려고 한다. 이를 도와주는 프로그램을 작성하자.

입력

첫째 줄에 참가자들의 음의 개수를 나타내는 정수 N(1 ≤ N ≤ 2 x 10⁴), 고음의 첫 항과 공차를 의미하는 정수 A, D(1 ≤ A, D ≤ 10⁷)가 공백으로 구분되어 주어진다.

둘째 줄에 참가자들의 음을 나타내는 N개의 정수가 순서대로 공백으로 구분되어 주어진다. 이 값은 10⁷을 넘지 않는 양의 정수이다.

출력

음 A를 시작으로 D음씩 올라가는 X단 고음으로 가능한 가장 큰 X를 출력하라.

예제3

  1. 예제 1

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

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

    입력
    7 3 3
    3 3 9 7 2 6 9
    
    예상 출력
    3