#include using namespace std; const int inf = 1e9; int main(void){ int gx, gy, n, f, x[101],y[101],c[101]; cin >> gx >> gy >> n >> f; for(int i=0; i> x[i] >> y[i] >> c[i]; } int dp[101][101]; dp[0][0] = 0; bool used[101][101][50]; for(int i=0; i<=gy; i++){ for(int j=0; j<=gx; j++){ for(int k=0; k= 0 && px <= gx && py >= 0 && py <= gy){ dp[0][j] = min(dp[py][px]+c[k],dp[0][j]); } } } for(int i=1; i<=gy; i++){ dp[i][0] = dp[i-1][0]+f; for(int k=0; k= 0 && px <= gx && py >= 0 && py <= gy){ dp[i][0] = min(dp[py][px]+c[k], dp[i][0]); } } } for(int i=1; i<=gy; i++){ for(int j=1; j<=gx; j++){ dp[i][j] = min(dp[i-1][j]+f, dp[i][j-1]+f); int mi=inf, mi_k; for(int k=0;k= 0 && px <= gx && py >= 0 && py <= gy && used[py][px][k] == true){ if(dp[py][px]+c[k] < dp[i][j]){ mi = min(dp[py][px]+c[k], mi); mi_k = k; } } } dp[i][j] = min(mi,dp[i][j]); for(int k=0;k