Problem Statement
You are given a plank of length plankLength. You want to cut the plank into exactly pieces pieces such that the length of each piece is a (positive) integer and all the lengths are distinct.
If it is possible to cut the plank in the described way, return "possible". Otherwise return "impossible".
Definition
- Class:
- PlayingWithPlanks
- Method:
- canItBeDone
- Parameters:
- int, int
- Returns:
- String
- Method signature:
- String canItBeDone(int plankLength, int pieces)
- (be sure your method is public)
Notes
- Note that the return value is case-sensitive.
Constraints
- plankLength will be between 1 and 1,000,000, inclusive.
- pieces will be between 1 and 1,000, inclusive.
Examples
9
3
Returns: "possible"
One possibility is to cut the plank into pieces of lengths 1, 3 and 5.
12
1
Returns: "possible"
9
4
Returns: "impossible"
It can be shown that there is no way to cut a plank of length 9 into 4 pieces of different integer lengths.
10
4
Returns: "possible"
750932
901
Returns: "possible"
54
10
Returns: "impossible"
1
1000
Returns: "impossible"
1000000
1
Returns: "possible"
1000000
1000
Returns: "possible"
1000
1000
Returns: "impossible"
1
1
Returns: "possible"
550000
1000
Returns: "possible"
500500
1000
Returns: "possible"
500409
1000
Returns: "impossible"
500409
999
Returns: "possible"
1000
44
Returns: "possible"
1000
45
Returns: "impossible"
1036
45
Returns: "possible"
1035
45
Returns: "possible"
700001
1000
Returns: "possible"
200017
632
Returns: "impossible"
200017
631
Returns: "possible"
200017
1
Returns: "possible"
2
2
Returns: "impossible"
3
2
Returns: "possible"
4
3
Returns: "impossible"
7
2
Returns: "possible"
5
5
Returns: "impossible"
9
9
Returns: "impossible"
500499
1000
Returns: "impossible"
4
4
Returns: "impossible"