#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
typedef long long ll;
const int N=100;
int main(){
    cin.tie(0)->ios::sync_with_stdio(false);
    int a,b,x,y;
    cin>>a>>b>>x>>y;
    vector<vector<ll>>dp(100,vector<ll>(100,INT_MAX));
    dp[0][0]=0;
    for(int i=0;i<=a+max(x,y);i++){
        for(int j=0;j<=b+max(x,y);j++){
            dp[i+x][j]=min(dp[i][j]+1,dp[i+x][j]);
            dp[i][j+x]=min(dp[i][j]+1,dp[i][j+x]);
            dp[i+y][j+y]=min(dp[i][j]+1,dp[i+y][j+y]);
        }
    }
    ll ans=INT_MAX;
    for(int i=a;i<=a+max(x,y);i++){
        for(int j=b;j<=b+max(x,y);j++){
            ans=min(ans,dp[i][j]);
        }
    }
    cout<<ans<<endl;
    return 0;
}

完全背包。题解区好像没这个做法,补一发