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

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

뮤탈리스크 2

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

요약
체력이 주어진 SCV가 최대 20개 있을 때, 한 번의 공격으로 서로 다른 세 SCV에 9, 3, 1의 피해를 줄 수 있다. 모든 SCV를 파괴하는 최소 공격 횟수를 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 비트 연산, 백트래킹
정답자
아직 제출이 없습니다

문제

수빈이는 강호와 스타크래프트 게임을 하고 있다. 수빈이에게는 뮤탈리스크 1마리가 남았고, 강호에게는 SCV NN대가 남았다.

SCV는 각자 남은 체력이 있고, 뮤탈리스크를 공격하지 못한다. 즉, 이 게임은 수빈이가 이겼다.

뮤탈리스크는 한 번 공격할 때 서로 다른 SCV를 최대 세 대까지 공격한다. 잃는 체력은 공격받는 순서로 정해진다.

  1. 첫 번째로 공격받는 SCV는 체력 9를 잃는다.
  2. 두 번째로 공격받는 SCV는 체력 3을 잃는다.
  3. 세 번째로 공격받는 SCV는 체력 1을 잃는다.

체력이 0 이하가 된 SCV는 그 즉시 파괴된다. 한 번의 공격에서 같은 SCV를 두 번 이상 공격할 수는 없고, 이미 파괴된 SCV를 공격할 수도 없다.

남은 SCV의 체력이 주어졌을 때, SCV를 모두 파괴하는 데 필요한 공격 횟수의 최솟값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 SCV의 수 NN (1≤N≤201 \le N \le 20)이 주어진다. 둘째 줄에 SCV NN대의 체력이 공백으로 구분되어 주어진다. 각 체력은 11 이상 6060 이하의 정수이다.

출력

SCV를 모두 파괴하는 데 필요한 공격 횟수의 최솟값을 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    3
    12 10 4
    
    예상 출력
    2
    
  2. 예제 2

    입력
    3
    54 18 6
    
    예상 출력
    6
    
  3. 예제 3

    입력
    10
    1 1 1 1 1 1 1 1 1 1
    
    예상 출력
    4