class Solution { public: int cutRope(int number) { if (number <= 3) return number-1; vector<int> dp(number+1, 0); dp[1] = 1; dp[2] = 2; dp[3] = 3; for (int i = 4; i < number+1; i++) { for (int j = 1; j < i; j++) { dp[i] = max(dp[i], j * dp[i - j]); } } return dp[number]; } };