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

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

아름다운 순위표

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

요약
n개 팀의 해결 문제 수와 대회 문제 수 m이 주어질 때, 정렬 순서와 '각 팀의 해결 수가 0 또는 m의 약수'라는 조건이 매 제출마다 유지되도록 만들 수 있는 최대 총 제출 횟수를 구한다.
난이도

보통10점 중 6점

유형
그리디, 정수론, 정렬, 수학
정답자
아직 제출이 없습니다

문제

올레그는 프로그래밍 대회의 열렬한 팬이다. 그는 지난 10년간 열린 모든 대회의 모든 참가자를 알고 있으며, 어떤 참가자에 대해서든 그가 속한 팀이 어떤 대회에서 몇 문제를 풀었는지 말할 수 있다. 올레그는 정수론도 아주 좋아한다.

프로그래밍 대회의 순위표에서 팀은 푼 문제 수가 감소하는 순서로 정렬되어 있다. 올레그는 모든 팀에 대해 푼 문제 수가 0이거나 대회의 문제 수의 약수이면 그 순위표를 아름답다고 부른다. 어떤 팀이 문제를 제출하면 그 팀이 푼 문제 수가 1 증가한다. 어떤 팀도 두 문제 이상을 동시에 제출할 수 없고, 두 팀이 동시에 문제를 제출할 수도 없다.

아름다운 순위표를 보던 올레그는 궁금해졌다. 각 문제를 제출한 뒤에도 순위표가 아름답게 유지되도록 팀들이 합쳐서 앞으로 몇 문제를 더 제출할 수 있을까? 그가 알아내도록 도와주자.

입력

입력 파일의 첫째 줄에는 두 정수 nn과 mm이 주어진다. 각각 팀의 수와 대회의 문제 수이다 (1≤n≤1001 \le n \le 100, 1≤m≤1091 \le m \le 10^9). 둘째 줄에는 감소하지 않는 순서로 정렬된 nn개의 정수가 주어진다. 각 팀이 푼 문제 수가 주어진다. 0이 아닌 모든 수는 mm의 약수임이 보장된다.

출력

출력 파일에 정수 하나를 출력한다. 각 문제를 제출한 뒤에도 순위표가 아름답게 유지되도록 팀들이 합쳐서 앞으로 더 제출할 수 있는 최대 문제 수이다.

힌트

예시에서 4위와 5위 팀은 문제를 하나씩, 6위 팀은 세 문제, 7위 팀은 네 문제를 제출할 수 있다. 이렇게 하면 팀들은 합쳐서 9문제를 제출할 수 있다.

예제1

  1. 예제 1

    입력
    7 12
    12 6 4 3 3 1 0
    
    예상 출력
    9