#include<iostream>
using namespace std;
int dp[4003];
int main() {
int n, s[4];
cin >> n >> s[1] >> s[2] >> s[3];
memset(dp, -1, sizeof(dp));
dp[0] = 0;
for (int i = 1; i <= 3; i++) {
for (int j = s[i]; j <= n; j++) {
if(dp[j-s[i]]!=-1)
dp[j] = max(dp[j], dp[j - s[i]] + 1);
}
}cout << dp[n];
}
求助!判断背包装没装满的方法不太理解