Problem Statement
In the Kocurkovo village there is a shop that sells simple planar graphs. (See Notes for a definition.)
The cost of any graph with X vertices and Y edges is (X^3 + Y^2) gold coins.
Monika has N gold coins, and she wants to spend all of them on simple planar graphs.
Write a method that gets the value N and computes the minimum number of simple planar graphs Monika has to buy in order to spend exactly N gold coins. She is allowed to buy multiple graphs of the same type.
Definition
- Class:
- PlanarGraphShop
- Method:
- bestCount
- Parameters:
- int
- Returns:
- int
- Method signature:
- int bestCount(int N)
- (be sure your method is public)
Notes
- A simple graph is an ordered pair (V,E) where V is a finite non-empty set of objects called vertices, and E is a finite set of edges. Each edge is a two-element subset of V. (You can find drawings of several graphs in Example #3.)
- Note that a simple graph does not contain any loops (edges that connect a vertex to itself) and any duplicate edges. In other words, each edge connects two different vertices, and each pair of vertices is connected by at most one edge.
- A graph is called planar if it has a drawing in the plane such that no two edges intersect.
- Note that a simple planar graph does not have to be connected.
Constraints
- N will be between 1 and 50,000, inclusive.
Examples
36
Returns: 1
For 36 gold coins she can buy a triangle: a simple planar graph with 3 vertices and 3 edges.
7
Returns: 7
The only simple planar graph that costs 7 gold coins or less is the graph that consists of a single vertex (and no edges). This graph costs 1^3 + 0^2 = 1, so Monika has to buy 7 of them.
72
Returns: 2
She can buy 2 triangles for 36 gold coins each. No simple planar graph costs exactly 72 gold coins, hence the optimal answer in this case is 2.
46
Returns: 3
All the graphs Monika can afford are shown in the following picture: One optimal solution is to buy graphs worth 1 + 9 + 36 gold coins.
50000
Returns: 2
1099
Returns: 2
1
Returns: 1
8
Returns: 1
49905
Returns: 1
46656
Returns: 1
46657
Returns: 1
15
Returns: 7
23
Returns: 7
34
Returns: 4
42
Returns: 4
50
Returns: 4
51
Returns: 4
61
Returns: 4
79
Returns: 4
114
Returns: 4
18735
Returns: 3
13099
Returns: 3
6692
Returns: 3
5711
Returns: 3
4691
Returns: 3
3703
Returns: 3
2739
Returns: 3
1995
Returns: 3
996
Returns: 3
49998
Returns: 2
49993
Returns: 2
49930
Returns: 2
2
Returns: 2
7
Returns: 7
10
Returns: 2
12
Returns: 4
17
Returns: 2
36
Returns: 1
43
Returns: 3
52
Returns: 3
100
Returns: 1
113
Returns: 3
128
Returns: 2
206
Returns: 1
225
Returns: 1
246
Returns: 3
360
Returns: 1
385
Returns: 3
412
Returns: 2
568
Returns: 1
599
Returns: 2
632
Returns: 2
836
Returns: 1
873
Returns: 1
912
Returns: 2
1170
Returns: 1
1213
Returns: 3
1258
Returns: 2
1576
Returns: 1
1625
Returns: 2
1676
Returns: 2
2060
Returns: 1
2115
Returns: 2
2172
Returns: 2
2628
Returns: 1
9668
Returns: 2
10916
Returns: 1
11025
Returns: 1
11136
Returns: 2
12510
Returns: 1
12625
Returns: 2
12742
Returns: 2
14248
Returns: 1
14369
Returns: 2
14492
Returns: 2
16136
Returns: 1
16263
Returns: 2
16392
Returns: 2
18180
Returns: 1
18313
Returns: 2
18448
Returns: 2
20386
Returns: 1
20525
Returns: 2
31278
Returns: 2
34056
Returns: 1
34225
Returns: 2
34396
Returns: 2
37360
Returns: 1
37535
Returns: 2
37712
Returns: 2
40868
Returns: 1
41049
Returns: 2
41232
Returns: 2
44586
Returns: 1
44773
Returns: 2
44962
Returns: 2
48520
Returns: 1
48713
Returns: 2
48908
Returns: 2
18735
Returns: 3
13099
Returns: 3
6692
Returns: 3
6615
Returns: 3
6016
Returns: 3
114
Returns: 4
79
Returns: 4
61
Returns: 4
23
Returns: 7
9912
Returns: 2
9
Returns: 1
231
Returns: 3
453
Returns: 3
35483
Returns: 2
441
Returns: 2
4356
Returns: 2
45987
Returns: 2
189
Returns: 1
32413
Returns: 2
49931
Returns: 1
64
Returns: 1
164
Returns: 2
4896
Returns: 1
49989
Returns: 2
34744
Returns: 2
487
Returns: 1
40
Returns: 2
30600
Returns: 1
316
Returns: 1
3025
Returns: 2
32768
Returns: 1
185
Returns: 3
19
Returns: 3
49913
Returns: 2
12345
Returns: 2
108
Returns: 2
343
Returns: 1
4196
Returns: 1
71
Returns: 3
174
Returns: 1
1400
Returns: 1
1036
Returns: 1
344
Returns: 1