#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include int max(int a, int b) { return (a > b) ? a : b; } int main() { int n; scanf("%d", &n); int a, b, c; scanf("%d %d %d", &a, &b, &c); int dp[n + 1]; for (int i = 0; i <= n; i++) { dp[i] = 0; } for (int i = 0; i <= n; i++) { if (i >= 1) { dp[i] = max(dp[i], dp[i - 1]); } if (i >= 3) { dp[i] = max(dp[i], dp[i - 3] + a); } if (i >= 5) { dp[i] = max(dp[i], dp[i - 5] + b); } if (i >= 10) { dp[i] = max(dp[i], dp[i - 10] + c); } } printf("%d\n", dp[n]); return 0; }