Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int n, x, y, z;
- int dp[10055];
- int rec(int at) {
- if(at == 0) {
- return 0;
- }
- if(dp[at] != -1) {
- return dp[at];
- }
- int res = -2e7;
- if(at - x >= 0) {
- res = max(res, rec(at - x) + 1);
- }
- if(at - y >= 0) {
- res = max(res, rec(at - y) + 1);
- }
- if(at - z >= 0) {
- res = max(res, rec(at - z) + 1);
- }
- return dp[at] = res;
- }
- int maximizeTheCuts(int n, int x, int y, int z)
- {
- this->n = n;
- this->x = x;
- this->y = y;
- this->z = z;
- memset(dp, -1, sizeof dp);
- return rec(n) > 0 ? rec(n) : 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement