Problem Statement
You are expecting some friends. You are going to cut the cake into multiple pieces before the friends arrive.
When the friends arrive, you will divide the cake among them, using the following procedure: starting at the beginning of the cake, you will first give some consecutive pieces to your first friend, then some consecutive pieces to your second friend, and so on.
Of course, you want to be fair. That is, each of your friends should receive the same total amount of cake. (The number of pieces may be different for different friends, but the sum of their lengths must be the same.)
As we stated above, you want to cut the cake before your friends arrive. However, you don't know how many friends will actually come. You only know that their count will be a divisor of n smaller than n.
You are given the
Definition
- Class:
- MyLongCake
- Method:
- cut
- Parameters:
- int
- Returns:
- int
- Method signature:
- int cut(int n)
- (be sure your method is public)
Constraints
- n will be between 2 and 100,000, inclusive.
Examples
6
Returns: 4
The best possible solution is to cut the cake into 4 pieces. Let's call the pieces A, B, C, and D, in order. Their lengths will be 2, 1, 1, and 2. As n=6, there will be 1, 2, or 3 friends. If there is just one friend, she gets all four pieces. If there are two friends, the first gets A+B and the second gets C+D. If there are three friends, the first gets A, the second gets B+C, and the third gets D. Note that the order of parts matters. For example, dividing the cake into parts of length 2, 1, 2, and 1 is not a valid solution.
3
Returns: 1
15
Returns: 7
You are expecting 1, 3, or 5 friends.
12
Returns: 8
100000
Returns: 60000
21169
Returns: 1
43905
Returns: 20497
22106
Returns: 12638
74789
Returns: 12149
65822
Returns: 32912
99027
Returns: 33015
79588
Returns: 40388
25790
Returns: 15478
13744
Returns: 6880
30878
Returns: 15440
41101
Returns: 1809
54039
Returns: 18015
71899
Returns: 1
99064
Returns: 58744
77676
Returns: 51788
2
Returns: 1
100000
Returns: 60000
3
Returns: 1
99999
Returns: 35199
4
Returns: 2
99998
Returns: 50000
5
Returns: 1
99997
Returns: 5605
6
Returns: 4
99996
Returns: 69276
7
Returns: 1
99995
Returns: 31451
8
Returns: 4
99994
Returns: 53210
9
Returns: 3
99993
Returns: 33333
10
Returns: 6
99992
Returns: 51832
11
Returns: 1
99991
Returns: 1
2
Returns: 1
65536
Returns: 32768
3
Returns: 1
59049
Returns: 19683
5
Returns: 1
78125
Returns: 15625
7
Returns: 1
16807
Returns: 2401
11
Returns: 1
14641
Returns: 1331
23
Returns: 1
12167
Returns: 529
53
Returns: 1
2809
Returns: 53
113
Returns: 1
12769
Returns: 113
271
Returns: 1
73441
Returns: 271
997
Returns: 1
4001
Returns: 1
9973
Returns: 1
10301
Returns: 1
31607
Returns: 1
99991
Returns: 1
2
Returns: 1
6
Returns: 4
30
Returns: 22
210
Returns: 162
2310
Returns: 1830
30030
Returns: 24270
85085
Returns: 39005
46189
Returns: 11629
9973
Returns: 1
10007
Returns: 1
99991
Returns: 1
31607
Returns: 1
33331
Returns: 1
65
Returns: 17
60042
Returns: 40030
10
Returns: 6
7
Returns: 1
9973
Returns: 1
147
Returns: 63
31607
Returns: 1
13
Returns: 1
9973
Returns: 1
17
Returns: 1
64800
Returns: 47520
33750
Returns: 24750
43200
Returns: 31680
33750
Returns: 24750
33750
Returns: 24750
97200
Returns: 71280
54000
Returns: 39600
40500
Returns: 29700
22500
Returns: 16500
21600
Returns: 15840
44100
Returns: 34020
99225
Returns: 53865
56700
Returns: 43740
52920
Returns: 40824
61740
Returns: 47628
91875
Returns: 49875
15750
Returns: 12150
88200
Returns: 68040
44100
Returns: 34020
55566
Returns: 39690
30800
Returns: 21200
64680
Returns: 51240
9240
Returns: 7320
79200
Returns: 60000
63525
Returns: 37125
33880
Returns: 23320
82320
Returns: 63504
11858
Returns: 7238
35640
Returns: 27000
59895
Returns: 30855
28561
Returns: 2197
22815
Returns: 11583
68750
Returns: 43750
15015
Returns: 9255
80850
Returns: 64050
10890
Returns: 8250
28028
Returns: 17948
25025
Returns: 10625
81120
Returns: 61152
60060
Returns: 48540
78540
Returns: 63180
42350
Returns: 29150
10010
Returns: 7130
22950
Returns: 17190
88434
Returns: 60690
57330
Returns: 45234
42075
Returns: 22875
28050
Returns: 21650
75140
Returns: 49028
9438
Returns: 6798
30940
Returns: 21724
20995
Returns: 7171
24225
Returns: 12705
83160
Returns: 65880
71383
Returns: 12631
36465
Returns: 21105
92055
Returns: 48279
46189
Returns: 11629
41327
Returns: 8687
17689
Returns: 3325
99730
Returns: 59842
29478
Returns: 20230
58956
Returns: 40460
48906
Returns: 35946
13
Returns: 1
51051
Returns: 28011
13500
Returns: 9900
30345
Returns: 17289
69811
Returns: 9979
57057
Returns: 31137
90090
Returns: 72810
28342
Returns: 14590
48986
Returns: 27998
120
Returns: 88
33
Returns: 13
105
Returns: 57
60
Returns: 44
91234
Returns: 54274
49
Returns: 7
42389
Returns: 4373
20014
Returns: 10008