Maximize The Cut Segments Java
- Get link
- X
- Other Apps
PROGRAM TO MAXIMISE THE NUMBER OF SEGMENTS OF LENGTH P, Q AND R
import
java.io.*;
class
GFG {
// Function that returns
// the maximum number
// of segments possible
static
int
findMaximum(
int
l,
int
p,
int
q,
int
r)
{
// Array to store the
// cut at each length
int
dp[] =
new
int
[l +
1
];
// All values with -1
for
(
int
i =
0
; i < l +
1
; i++)
dp[i] = -
1
;
// if length of rod is 0
// then total cuts will
// be 0 so, initialize
// the dp[0] with 0
dp[
0
] =
0
;
for
(
int
i =
0
; i <= l; i++) {
// if certain length
// is not possible
if
(dp[i] == -
1
)
continue
;
// if a segment of
// p is possible
if
(i + p <= l)
dp[i + p] = Math.max(dp[i + p], dp[i] +
1
);
// if a segment of
// q is possible
if
(i + q <= l)
dp[i + q] = Math.max(dp[i + q], dp[i] +
1
);
// if a segment of
// r is possible
if
(i + r <= l)
dp[i + r] = Math.max(dp[i + r], dp[i] +
1
);
}
// if no segment can be cut then return 0
if
(dp[l] == -
1
) {
dp[l] =
0
;
}
// return value corresponding
// to length l
return
dp[l];
}
// Driver Code
public
static
void
main(String[] args)
{
int
l =
11
, p =
2
, q =
3
, r =
5
;
// Calling Function
int
ans = findMaximum(l, p, q, r);
System.out.println(ans);
}
}
OUTPUT:
5
- Get link
- X
- Other Apps
Comments
Post a Comment