1class Solution {2public long sellingWood(int m, int n, int[][] prices) {3long[][] dp = new long[m + 1][n + 1];4for (int[] price : prices) {5dp[price[0]][price[1]] = price[2];6}7for (int i = 1; i < m + 1; i++) {8for (int j = 1; j < n + 1; j++) {9// all horizontal10for (int k = 1; k <= i / 2; k++) {11dp[i][j] = Math.max(dp[i][j], dp[i - k][j] + dp[k][j]);12}13// all vertical14for (int k = 1; k <= j / 2; k++) {15dp[i][j] = Math.max(dp[i][j], dp[i][j - k] + dp[i][k]);16}17}18}1920return dp[m][n];21}22}