#include using namespace std; typedef long long ll; typedef long double ld; #define rep(i,n) for (int i = 0; i < (n); ++i) templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b> gx >> gy >> n >> f; vector x(n),y(n),c(n); rep(i,n){ cin >> x[i] >> y[i] >> c[i]; } vector>> dp(n+1,vector>(gx+1,vector(gy+1,inf))); dp[0][0][0]=0; rep(i,n){ rep(j,gx+1){ rep(k,gy+1){ chmin(dp[i+1][j][k],dp[i][j][k]); if(j+x[i]<=gx&&k+y[i]<=gy){ chmin(dp[i+1][j+x[i]][k+y[i]],dp[i][j][k]+c[i]); } } } } int ans=inf; rep(i,gx+1){ rep(j,gy+1){ chmin(ans,dp[n][i][j]+f*(gx-i+gy-j)); } } cout << ans << endl; }