#P13404. [GCJ 2010 #3] Fence

    ID: 15273 远端评测题 3000ms 1024MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>2010广度优先搜索 BFS最短路Google Code Jam

[GCJ 2010 #3] Fence

题目描述

We are looking into building a very long fence. We have already found a nice place to build it, and all that remains is to collect the materials.

From local hardware stores, we can buy unlimited numbers of wooden boards, each of which can come in a variety of different lengths. To avoid waste, we want to make sure that the total length of these boards is exactly equal to the length of the fence we are trying to build.

Given the length of the fence, and the possible board lengths that we can use, what is the minimum number of boards that we need to purchase in order to get exactly the right length?

Beware: the fence is going to be very long!

输入格式

The first line of the input file contains the number of cases, TT. TT test cases follow.

Each test case consists of two lines. The first line contains space-separated integers LL and NN. These represent the total length of the fence, and the number of different board lengths that can be purchased. The second line contains NN space-separated integers B1B_1, B2B_2, ..., BNB_N, representing all the possible board lengths.

输出格式

For each test case, output one line containing "Case #xx: MM", where xx is the case number (starting from 1) and MM is as follows:

  • If it is possible to purchase one or more boards so that their total length is exactly equal to LL, then MM should be the minimum number of boards required to do this.
  • Otherwise, MM should be the string "IMPOSSIBLE".
2
10000000001 3
23 51 100
10000000001 3
100 52 22
Case #1: 100000004
Case #2: IMPOSSIBLE

提示

Sample Explanation

In the first example, the optimal strategy is to use 22 boards of length 2323, 55 boards of length 5151, and 9999999799999997 boards of length 100100. Of course, you could use just 100000001100000001 boards of length 100100 to get a total greater than LL, but that is not allowed.

In the second example, it is only possible to get even lengths.

Limits

  • 1T501 \leq T \leq 50.
  • 1010L101810^{10} \leq L \leq 10^{18}.
  • 1N1001 \leq N \leq 100.

Small dataset (7 Pts, Test set 1 - Visible)

  • 1Bi1001 \leq B_i \leq 100.

Large dataset (22 Pts, Test set 2 - Hidden)

1Bi1000001 \leq B_i \leq 100000.