3978.Cut Ribbon

Time Limit: 1s Memory Limit: 256MB

Polycarpus has a ribbon, its length is n. He wants to cut the ribbon in a way that fulfils the following two conditions:
After the cutting each ribbon piece should have length a, b or c. After the cutting the number of ribbon pieces should be maximum.
Help Polycarpus and find the number of ribbon pieces after the required cutting.

Input Format(From the terminal/stdin)

The first line contains four space-separated integers n, a, b and c (1 \le n,a,b,c \le 4000) - the length of the original ribbon and the acceptable lengths of the ribbon pieces after the cutting, correspondingly. The numbers a, b and c can coincide.

Output Format(To the terminal/stdout)

Print a single number - the maximum possible number of ribbon pieces. It is guaranteed that at least one correct ribbon cutting exists.

Sample Input 1

Copy
5 5 3 2
 · · · \n

Sample Output 1

Copy
2
 \n

Sample Input 2

Copy
7 5 5 2
 · · · \n

Sample Output 2

Copy
2
 \n

Hints

In the first example Polycarpus can cut the ribbon in such way: the first piece has length 2, the second piece has length 3.

In the second example Polycarpus can cut the ribbon in such way: the first piece has length 5, the second piece has length 2.

Submit

请先 登录

© 2025 FAQs