#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define V_MAX 30 using namespace std; int main(void) { int V[4]; for (int i = 0; i < 4; i++) { cin >> V[i]; } int ret = INT_MAX; int A[3]; for (A[0] = 1; A[0] <= V_MAX; A[0]++) { for (A[1] = A[0] + 1; A[1] <= V_MAX; A[1]++) { for (A[2] = A[1] + 1; A[2] <= V_MAX; A[2]++) { int dp[V_MAX + 1]; dp[0] = 0; for (int i = 1; i <= V_MAX; i++) { dp[i] = 4 * V_MAX; for (int j = 0; j < 3; j++) { if (A[j] <= i) { dp[i] = min(dp[i], dp[i - A[j]] + 1); } } } int x = 0; for (int i = 0; i < 4; i++) { x += dp[V[i]]; } ret = min(ret, x); } } } printf("%d\n", ret); return 0; }