#USACO631. [USACO 6.3.1]Fence Rails
[USACO 6.3.1]Fence Rails
栅栏木板
Burch, Kolstad, and Schrijvers
农夫约翰正在他的田地里建造栅栏。他已经决定了栅栏的形状,并且已经安装了立柱,但他在木板方面遇到了问题。当地的木材店送来了长度各异的木板;农夫约翰必须从这些木板中制造出所需数量的栅栏杆。
当然,农夫约翰可以切割木板,所以一块9英尺的木板可以切成一个5英尺的栏杆和一个4英尺的栏杆(或者三个3英尺的栏杆,等等)。农夫约翰有一个“理想锯”,所以忽略锯缝(锯切过程中损失的长度);假设可以进行完美切割。
所需栏杆的长度可能包含重复(例如,可能需要一个3英尺的栏杆和另一个3英尺的栏杆)。不需要制造超过所需数量的栏杆(或任何种类的栏杆)。
程序名称:fence
输入格式
| 行 | 内容 |
|---|---|
| 1 | N (1 ≤ N ≤ 50),木板的数量 |
| 2..N+1 | N行,每行一个整数,表示一块供应木板的长度 |
| N+2 | R (1 ≤ R ≤ 1023),所需栏杆的数量 |
| N+3..N+R+1 | R行,每行一个整数 (1 ≤ ri ≤ 128),表示所需一根栏杆的长度 |
样例输入(文件 fence.in)
4
30
40
50
25
10
15
16
17
18
19
20
21
25
24
30
输出格式
一行一个整数,表示可以从供应木板中切割出的栅栏杆的总数。当然,可能无法从给定的木板中切割出所有所需的栏杆。
样例输出(文件 fence.out)
7