만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

골프

면접 대비

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

요약
거리 D와 클럽별 비거리 C개가 주어질 때, 합이 정확히 D가 되는 최소 타수를 구합니다. 불가능하면 0을 출력합니다.
난이도

보통10점 중 4점

유형
동적 계획법, 배열
정답자
아직 제출이 없습니다

문제

소들도 다른 모든 동물처럼 골프의 여유와 도전을 좋아한다. Bessie는 골프를 아주 잘 쳐서, 매번 홀을 정확히 겨냥해 공을 보낼 수 있다. 클럽마다 그 클럽에 정해진 거리만큼 공이 매번 정확히 날아간다.

Bessie는 영리한 소다. 공을 홀 너머로 보낸 뒤 홀 쪽으로 되받아 칠 수 있다는 점을 알고 있고, 이를 활용한다.

골프를 모르는 사람을 위해 설명하면, 공을 칠 때마다 1타가 쌓인다. 골프의 목표는 티에서 홀까지 가장 적은 타수로 공을 넣는 것이다. 점수가 낮을수록 이긴다.

Bessie에게는 주어진 홀에 가장 적은 타수로 도달할 클럽 조합을 고르는 프로그램이 필요하다. 그것이 불가능하면 그 사실을 알고 싶어 하며, 그럴 때는 깨끗이 패배를 인정한다. 소는 사람보다 튼튼하므로 Bessie는 최대 CC개의 클럽을 가지고 다닐 수 있다(1≤C≤321 \le C \le 32). 티에서 홀까지의 총 거리 DD는 10,000야드를 넘지 않는다(1≤D≤100001 \le D \le 10000).

입력

첫 줄에 공백으로 구분된 두 정수 DD와 CC가 주어진다. 이어지는 CC개의 줄에는 각각 클럽 하나를 나타내는 정수 RR(1≤R≤4001 \le R \le 400)이 한 개씩 주어진다. RR은 그 클럽이 공을 보내는 야드 수다. 같은 거리를 가진 클럽은 없다.

출력

티에서 홀까지 공을 옮기는 데 필요한 최소 타수를 한 줄에 출력한다. 주어진 클럽으로 홀에 도달할 수 없으면 0을 출력한다.

예제1

  1. 예제 1

    입력
    100 3
    33
    66
    1
    
    예상 출력
    3