#include #include using namespace std; #define REP(i, n) for(int(i)=0;(i)<(n);++(i)) const int MAXV = 30; int main(){ int V0,V1,V2,V3; cin >> V0 >> V1 >> V2 >> V3; int minv = 10000; for(int A = 1; A <= MAXV; A++){ for(int B = A+1; B <= MAXV; B++){ for(int C = B+1; C <= MAXV; C++){ int dp[MAXV+1]; for(int i = 0; i <= MAXV; i++) dp[i] = 10000; dp[0] = 0; int k[3]; k[0] = A, k[1] = B, k[2] = C; for(int i = 0; i < 3; i++){ for(int j = 0; j <= MAXV; j++){ if(j+k[i] <= MAXV){ dp[j+k[i]] = min(dp[j+k[i]], dp[j]+1); } } } minv = min(minv, dp[V0]+dp[V1]+dp[V2]+dp[V3]); } } } cout << minv << endl; return 0; }