Cắt Ruy Băng

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++
Điểm: 10 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Polycarpus có một dải ruy băng với độ dài là \(n\). Anh ấy muốn cắt dải ruy băng này theo cách thỏa mãn hai điều kiện sau: Sau khi cắt, mỗi đoạn ruy băng phải có độ dài là \(a\), \(b\) hoặc \(c\). Sau khi cắt, tổng số đoạn ruy băng thu được phải là lớn nhất. Hãy giúp Polycarpus tìm số lượng đoạn ruy băng sau khi cắt thỏa mãn yêu cầu.
Đầu vào: Dòng đầu tiên chứa 4 số nguyên cách nhau bởi dấu cách: \(n, a, b\)\(c\) (\(1 \le n, a, b, c \le 4000\)) — trong đó \(n\) là độ dài ban đầu của dải ruy băng, và \(a, b, c\) là các độ dài cho phép của các đoạn sau khi cắt. Các số \(a, b\)\(c\) có thể bằng nhau.
Đầu ra: In ra một số duy nhất — số lượng đoạn ruy băng lớn nhất có thể cắt được. Đề bài đảm bảo rằng luôn tồn tại ít nhất một cách cắt hợp lệ.

Input

5 5 3 2

Output

2

Gợi ý

Polycarpus có thể cắt dải ruy băng theo cách sau: mảnh đầu tiên dài 2, mảnh thứ hai dài 3.


Bình luận

Không có bình luận nào.