// yukicoder: 27 板の準備 // 2019.9.3 bal4u #include #include #include int v[4]; int dp[33]; int cmp(const void *u, const void *v) { return *(int *)u - *(int *)v; } inline static void chmin(int *a, int b) { if (*a > b) *a = b; } int check(int *a) { int i, j, s; memset(dp, 0x01, sizeof(dp)); dp[0] = 0; for (i = 1; i <= 3; i++) for (j = a[i]; j <= 30; j++) chmin(&dp[j], dp[j-a[i]]+1); s = 0; for (i = 0; i < 4; i++) s += dp[v[i]]; return s; } int main() { int i, t, a[4], ans; for (i = 0; i < 4; i++) scanf("%d", v+i); qsort(v, 4, sizeof(int), cmp); ans = 10000; for (a[1] = 1; a[1] <= v[0]; a[1]++) for (a[2] = a[1]+1; a[2] < v[3]; a[2]++) for (a[3] = a[2]+1; a[3] <= v[3]; a[3]++) { if ((t = check(a)) < ans) ans = t; } printf("%d\n", ans); return 0; }