#include using namespace std; #define rep(i,a,b) for(int i=a;i> x >> y >> n >> f; int dp[y+1][x+1]; dp[0][0] = 0; rep(i,1,y+1){ dp[i][0] = dp[i-1][0] + f; } rep(i,0,y+1){ rep(j,1,x+1){ dp[i][j] = dp[i][j-1] + f; } } int crystals[n][3]; rep(i,0,n){ rep(j,0,3){ cin >> crystals[i][j]; } } rep(k,0,n){ for(int i = y; i > -1; i--){ for(int j = x; j > -1; j--){ int dx = j-crystals[k][0]; int dy = i-crystals[k][1]; if(-1 < dx && -1 < dy){ dp[i][j] = min(dp[i][j], dp[dy][dx] + crystals[k][2]); } } } } cout << dp[y][x] << endl; }