Ratatouille (Small)

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

요약
N개 재료마다 P개의 포장이 주어질 때, 각 포장이 필요한 양의 90~110퍼센트 범위에 들도록 정수 인분 라벨을 붙여 킷으로 묶고, 만들 수 있는 킷의 최대 개수를 구한다.
난이도

보통10점 중 7점

유형
그리디, 정렬, 완전 탐색, 이분 탐색
정답자
아직 제출이 없습니다

문제

라따뚜이 요리법을 완성했다. 재료는 NN가지이고, 재료마다 한 인분에 몇 그램이 필요한지 알고 있다. 이 요리법을 키트로 만들어 팔려고 한다.

재료 꾸러미는 이미 주문해 두었다. 꾸러미 하나에는 재료 한 가지가 일정량 들어 있고, 같은 재료라도 꾸러미마다 들어 있는 양이 다를 수 있다. 재료마다 꾸러미를 PP개씩 똑같이 주문했다.

키트 하나에는 재료마다 꾸러미를 정확히 하나씩 담고, 몇 인분을 만들 수 있는지 적은 라벨을 붙인다. 라벨에 적는 인분 수는 정수다. 손님에게 모자라게 주지도 않고 재료를 남기지도 않으려면, 키트에 담은 꾸러미의 양이 라벨에 적힌 인분 수에 실제로 필요한 양의 90% 이상 110% 이하여야 한다.

예를 들어 한 인분에 토마토 500 g과 양파 300 g이 필요하고, 토마토 900 g 꾸러미와 양파 660 g 꾸러미가 있다고 하자. 이 둘로 2인분 라벨을 붙인 키트를 만들 수 있다. 2인분에는 토마토 1000 g과 양파 600 g이 필요한데, 900 g은 1000 g의 90%이고 660 g은 600 g의 110%다. 같은 두 꾸러미에 1인분이나 3인분 라벨을 붙일 수는 없고, 라벨은 정수여야 하므로 1.999인분도 붙일 수 없다.

어떤 라벨을 붙여도 키트가 되지 않는 조합도 있다. 같은 요리법에서 토마토 1500 g 꾸러미와 양파 809 g 꾸러미를 보자. 3인분에는 토마토 1500 g과 양파 900 g이 필요한데, 양파 809 g은 900 g의 90%인 810 g에 못 미친다. 다른 정수 인분 수도 모두 맞지 않는다.

꾸러미는 각각 최대 한 키트에만 들어간다. 만들 수 있는 유효한 키트 수의 최댓값을 구하라. 총 인분 수까지 최대로 만들 필요는 없다.

정리하면, ii번 재료에서 QiQ_i g짜리 꾸러미를 하나씩 골라 만든 키트에 라벨 SS를 붙였을 때, SS가 양의 정수이고 모든 ii에 대해 0.9×S×Ri≤Qi≤1.1×S×Ri0.9 \times S \times R_i \le Q_i \le 1.1 \times S \times R_i이면 그 키트는 유효하다.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 각 테스트 케이스의 형식은 다음과 같다.

  • 첫 줄에 재료의 수 NN과 재료마다 있는 꾸러미의 수 PP가 주어진다.
  • 둘째 줄에 NN개의 정수 RiR_i가 주어진다. ii번째 값은 ii번 재료가 한 인분에 몇 그램 필요한지를 뜻한다.
  • 이어지는 NN개의 줄에 각각 PP개의 정수가 주어진다. ii번째 줄의 jj번째 값 QijQ_{ij}는 ii번 재료의 jj번째 꾸러미에 들어 있는 양이며, 단위는 그램이다.

제한

  • 1≤T≤1001 \le T \le 100
  • 1≤N≤31 \le N \le 3
  • 1≤P≤81 \le P \le 8
  • 1≤Ri≤1061 \le R_i \le 10^6
  • 1≤Qij≤1061 \le Q_{ij} \le 10^6

출력

각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, y는 만들 수 있는 키트 수의 최댓값이다.

힌트

예제의 첫 두 테스트 케이스는 문제에서 설명한 상황이다.

세 번째 케이스에서는 1번 재료의 450 g 꾸러미와 2번 재료의 1100 g 꾸러미를 묶어 10인분 라벨을 붙일 수 있다. 10인분에는 1번 재료가 500 g 필요한데 450 g은 그 90%이고, 2번 재료가 1000 g 필요한데 1100 g은 그 110%다. 이 키트를 만들고 나면 남은 449 g 꾸러미와 1101 g 꾸러미에는 어떤 라벨도 붙일 수 없으므로, 만들 수 있는 키트는 이 하나뿐이다.

네 번째 케이스에서는 키트를 하나도 만들 수 없다. 요리법은 재료마다 필요한 양을 순서대로 정해 두었고, 재료끼리 바꿔 쓸 수 없다.

다섯 번째 케이스의 요리법은 재료가 하나다. 1인분에는 11 g을 넘게 쓸 수 없고, 2인분에는 18 g보다 적게 쓸 수 없다. 키트는 세 개까지 만들 수 있다. 11 g 꾸러미로 1인분 키트를 두 개, 18 g 꾸러미로 2인분 키트를 하나 만들면 된다.

여섯 번째 케이스에서는 키트 세 개가 유효하다. (700 g, 800 g, 900 g)에 10인분 라벨을 붙이고, (1500 g, 1600 g, 1700 g)과 (1260 g, 1440 g, 1620 g)에 각각 20인분 라벨을 붙인다. 마지막 키트에는 17인분, 18인분, 19인분 라벨을 붙여도 된다. 키트가 유효하기만 하면 라벨에 적은 인분 수는 답에 영향을 주지 않는다.

예제1

  1. 예제 1

    입력
    6
    2 1
    500 300
    900
    660
    2 1
    500 300
    1500
    809
    2 2
    50 100
    450 449
    1100 1101
    2 1
    500 300
    300
    500
    1 8
    10
    11 13 17 11 16 14 12 18
    3 3
    70 80 90
    1260 1500 700
    800 1440 1600
    1700 1620 900
    
    예상 출력
    Case #1: 1
    Case #2: 0
    Case #3: 1
    Case #4: 0
    Case #5: 3
    Case #6: 3