Problem Statement
You can change the value shown on the display by pressing buttons. There are two buttons attached to the display: a button labeled "increase" and a button labeled "reverse". Their effects are as follows:
- Pressing the button "increase" increments the number shown on the display: if the current number is x, it changes to x+1.
- The button "reverse" can only be pressed if the last digit of the current number is non-zero. Pressing this button reverses the digits of the number shown on the display. If the last digit of the current number is zero, this button is disabled.
Definition
- Class:
- ReverseAndIncrease
- Method:
- isPossible
- Parameters:
- long, long
- Returns:
- String
- Method signature:
- String isPossible(long s, long t)
- (be sure your method is public)
Constraints
- s will be between 1 and 1,000,000,000,000,000,000 (10^18), inclusive.
- t will be between 1 and 1,000,000,000,000,000,000 (10^18), inclusive.
Examples
321
125
Returns: "Possible"
One possible solution is to push the buttons in the order "reverse, increase, increase". The number will change as follows: 321 -> 123 -> 124 -> 125.
120
21
Returns: "Impossible"
Note that we are not allowed to push the "reverse" button in this situation to change 120 into 021 = 21. In fact, we can easily prove that each number that can be obtained from 120 by pressing buttons will have at least three digits. Thus, producing 21 is impossible.
58
58
Returns: "Possible"
This time we don't need to push any button.
1234567890123456
123456
Returns: "Impossible"
Watch out for overflow.
123456
1234567890123456
Returns: "Possible"
5
3
Returns: "Impossible"
1
3
Returns: "Possible"
999
998
Returns: "Impossible"
998
997
Returns: "Possible"
104
101
Returns: "Impossible"
104
99
Returns: "Impossible"
102
101
Returns: "Impossible"
101
100
Returns: "Impossible"
999
1000
Returns: "Possible"
999
999
Returns: "Possible"
1000000000000000000
1000000000000000000
Returns: "Possible"
999999999999999999
999999999999999999
Returns: "Possible"
999999999999989999
100000000000000002
Returns: "Possible"
1001
1002
Returns: "Possible"
100000000000000001
10002
Returns: "Impossible"
1000002
9999999999999999
Returns: "Possible"
1000000000
799371267598609
Returns: "Possible"
100000000000000001
100000000000000002
Returns: "Possible"
3
159247171061
Returns: "Possible"
1000000000000000000
100000000
Returns: "Impossible"
10000000000000001
26490
Returns: "Impossible"
1000001
1000001
Returns: "Possible"
10000000001
79071681007
Returns: "Possible"
607
100000000001
Returns: "Possible"
10000000000000
1
Returns: "Impossible"
102
787
Returns: "Possible"
8252960243
999999999999999
Returns: "Possible"
1000001
1000002
Returns: "Possible"
100000000000000000
100000000000000001
Returns: "Possible"
18933173
2
Returns: "Impossible"
999999
100000000000000002
Returns: "Possible"
1000000001
1000000000001
Returns: "Possible"
100000000000002
100000000000002
Returns: "Possible"
10000000000000001
10000000000000000
Returns: "Impossible"
10000000
2363310213831
Returns: "Possible"
100000002
999999
Returns: "Impossible"
63757085505
536138297877
Returns: "Possible"
10000000001
10000000001
Returns: "Possible"
99999999999999
100000000000001
Returns: "Possible"
9999999
10000000000000000
Returns: "Possible"
804268502101424365
765400817903933675
Returns: "Possible"
1269265573
708920374
Returns: "Impossible"
9999999
1000000000000001
Returns: "Possible"
100002
100002
Returns: "Possible"
10001
49813
Returns: "Possible"
100
10000000000
Returns: "Possible"
47940757497669
10000000000001
Returns: "Impossible"
94738132922833461
99999999999999999
Returns: "Possible"
1000000000000000000
1001
Returns: "Impossible"
1000000000000000000
1000000000000000000
Returns: "Possible"
99999999999999999
10001
Returns: "Impossible"
365910458944825210
4518963
Returns: "Impossible"
1000000000002
100000000002
Returns: "Impossible"
10000
10001
Returns: "Possible"
100000000000001
999999999999999
Returns: "Possible"
1000000001
9999
Returns: "Impossible"
42407982921436
10000000000002
Returns: "Possible"
1
9
Returns: "Possible"
10000000001
15321608295
Returns: "Possible"
347132
100002
Returns: "Possible"
2
2
Returns: "Possible"
1
99999999999
Returns: "Possible"
3
5
Returns: "Possible"
100
639
Returns: "Possible"
100000000000000000
9999999999999
Returns: "Impossible"
338736064
99999
Returns: "Impossible"
1
100000000000000
Returns: "Possible"
99999
9999999999999
Returns: "Possible"
101
442
Returns: "Possible"
9999999999999999
10000000000000002
Returns: "Possible"
192
100
Returns: "Impossible"
10000000000000002
1000002
Returns: "Impossible"
3
6
Returns: "Possible"
1919
638195
Returns: "Possible"
7
100000000000
Returns: "Possible"
3
10000000000000001
Returns: "Possible"
10000000000000002
995240420076491344
Returns: "Possible"
3
100002
Returns: "Possible"
1000000000000000000
1000000000000000000
Returns: "Possible"
1000000000
500657
Returns: "Impossible"
29883824
3527277
Returns: "Impossible"
1000000000001
100000002
Returns: "Impossible"
10000002
99999999
Returns: "Possible"
1000000000000000000
1000000000
Returns: "Impossible"
9595
9
Returns: "Impossible"
231654
100001
Returns: "Impossible"
10000000000000001
10000000000000002
Returns: "Possible"
1000000000000000000
1000000000000000000
Returns: "Possible"
102
946133226160859
Returns: "Possible"
7
1000000000000001
Returns: "Possible"
999999999999
100000000000000000
Returns: "Possible"
426067870
1000002
Returns: "Impossible"
999999999999999999
999
Returns: "Impossible"
10000000000000002
10000000
Returns: "Impossible"
100000000000000001
849
Returns: "Impossible"
1000000000000
68450
Returns: "Impossible"
3
10001
Returns: "Possible"
1000000002
1000000002
Returns: "Possible"
100000000000000002
100000000000000
Returns: "Impossible"
1000000000000000000
1000000000000000000
Returns: "Possible"
9999999
1000000
Returns: "Impossible"
1000000000001
100000000000001
Returns: "Possible"
9999999
1000001
Returns: "Impossible"
100000000000000
100000000000002
Returns: "Possible"
1000000000002
1000000000000
Returns: "Impossible"
13912
100000002
Returns: "Possible"
1000
8133
Returns: "Possible"
100000000000002
1000000000000000000
Returns: "Possible"
10001
1000000000000000
Returns: "Possible"
100000000000000001
100000000000000001
Returns: "Possible"
99999
100000000000000000
Returns: "Possible"
1000000000000000000
375719841401112944
Returns: "Impossible"
3425
1000
Returns: "Impossible"
100000000000002
1002
Returns: "Impossible"
10000000000
10000000002
Returns: "Possible"
100000000002
736385452538
Returns: "Possible"
9999999999999999
1000000000000001
Returns: "Impossible"
99999999999999999
10000000000000001
Returns: "Impossible"
1000
8954
Returns: "Possible"
100000000002
100000000000
Returns: "Impossible"
1000000000000000000
8142637871989
Returns: "Impossible"
1002
1000
Returns: "Impossible"
10001
34552091176409
Returns: "Possible"
10000000000000000
10000000000000001
Returns: "Possible"
6
8
Returns: "Possible"
1
3
Returns: "Possible"
100000000001
100000000001
Returns: "Possible"
1001
99999999999
Returns: "Possible"
100000000000001
999999999999999
Returns: "Possible"
1000000000000000000
1000000000000000000
Returns: "Possible"
88954527689208
88246821597121
Returns: "Possible"
100000000000000002
100000000000
Returns: "Impossible"
999999999999999999
1001
Returns: "Impossible"
624322996532109562
999999999999999
Returns: "Impossible"
1000000000000000
1000000000000002
Returns: "Possible"
1000
1002
Returns: "Possible"
99999999
10000000001
Returns: "Possible"
3
2
Returns: "Impossible"
1001
9999
Returns: "Possible"
8
3
Returns: "Impossible"
7385775743099
9999999999999
Returns: "Possible"
9999999
999999
Returns: "Impossible"
3
9
Returns: "Possible"
75778
10000
Returns: "Impossible"
99999999999999999
10000000000
Returns: "Impossible"
99999999999999999
5
Returns: "Impossible"
300477915249934
719368286978157
Returns: "Possible"
1000001
1000000
Returns: "Impossible"
1755234
99999
Returns: "Impossible"
1
9999999999999
Returns: "Possible"
10000000000002
10000000000002
Returns: "Possible"
80087040
532206628
Returns: "Possible"
102
244716018
Returns: "Possible"
100000000000000001
999999999999999999
Returns: "Possible"
1000001
9999
Returns: "Impossible"
100000000000001
100000000000001
Returns: "Possible"
10000000
570012916
Returns: "Possible"
1000000000000000000
100000000000
Returns: "Impossible"
6
1000000000000002
Returns: "Possible"
100000000
10000002
Returns: "Impossible"
100002
9999999
Returns: "Possible"
1000000000000001
10000001
Returns: "Impossible"
100000000000001
13204765400980
Returns: "Impossible"
7
7
Returns: "Possible"
10001
999999999999999999
Returns: "Possible"
90051479295563060
10000000000000002
Returns: "Possible"
100000000
99999999999999
Returns: "Possible"
9
3
Returns: "Impossible"
1000002
10000000000000002
Returns: "Possible"
96652535265326606
10000000000000002
Returns: "Possible"
100000000001
999999999999
Returns: "Possible"
98525891160
100000000000
Returns: "Possible"
11640299
10000000
Returns: "Impossible"
100
58387784637992
Returns: "Possible"
9999999
9999999
Returns: "Possible"
10000000000000
1000000000000000000
Returns: "Possible"
5558810643
100000000002
Returns: "Possible"
22327
10002
Returns: "Possible"
1000
9999
Returns: "Possible"
100000
999999
Returns: "Possible"
100000000000000002
895817
Returns: "Impossible"
999999999999999999
10000000000
Returns: "Impossible"
1000000000000000
100000001
Returns: "Impossible"
2
2
Returns: "Possible"
10000000001
10000000001
Returns: "Possible"
99999999999999
10000000000000
Returns: "Impossible"
2177224082
100000000000001
Returns: "Possible"
797113130279
1002
Returns: "Impossible"
100000000000001
100000000000002
Returns: "Possible"
1000000000000002
10000000001
Returns: "Impossible"
100002
1000000000002
Returns: "Possible"
333208512910959274
99999999
Returns: "Impossible"
1000000002
100000000000000000
Returns: "Possible"
10000000002
99999999999999
Returns: "Possible"
67965911232
20932294234
Returns: "Possible"
79573625946963
5727387956540140
Returns: "Possible"
10000000000000000
99999999999999999
Returns: "Possible"
1000000000000
1000000000001
Returns: "Possible"
3
10000000000000001
Returns: "Possible"
1000000000
99999999999
Returns: "Possible"
99999999
10000000
Returns: "Impossible"
8
100000000000000001
Returns: "Possible"
100
950
Returns: "Possible"
1000000000002
8950600224985
Returns: "Possible"
152687639080
100000000000
Returns: "Impossible"
5
1000000000000000000
Returns: "Possible"
445
999
Returns: "Possible"
1000000001
10000000000002
Returns: "Possible"
100000000000002
1000000
Returns: "Impossible"
8
5
Returns: "Impossible"
100001
100000
Returns: "Impossible"
99999999999999
10000000000001
Returns: "Impossible"
10000000000
1
Returns: "Impossible"
5
4
Returns: "Impossible"
998
102
Returns: "Possible"