Problem Statement
Definition
- Class:
- PolygonDecomposition
- Method:
- howMany
- Parameters:
- int, int
- Returns:
- int
- Method signature:
- int howMany(int n, int k)
- (be sure your method is public)
Notes
- The vertices are distinct - there are 5 ways to cut a pentagon into 3 triangles, not just one way.
- Only one polygon at a time may be cut - you cannot cut two triangles into four triangles with one cut.
Constraints
- n is between 3 and 100, inclusive.
- k is between 1 and 100, inclusive.
Examples
4
2
Returns: 2
A quadrilateral can be cut into two triangles in two different ways, one for each diagonal.
100
1
Returns: 1
Any polygon can be cut into one polygon by not cutting at all, but no other way.
6
4
Returns: 14
31
20
Returns: 956146480
The actual number of ways is about 6.5 x 10^18, but we return only the final 9 digits.
3
4
Returns: -1
100
70
Returns: 483656000
100
99
Returns: -1
86
54
Returns: 878629120
20
18
Returns: 477638700
60
40
Returns: 824997600
49
31
Returns: 139054520
53
49
Returns: 542027500
59
22
Returns: 604428400
80
15
Returns: 744889600
5
2
Returns: 5
86
47
Returns: 870688000
94
82
Returns: 879228580
94
48
Returns: 27400000
81
71
Returns: 486930750
24
8
Returns: 590353000
97
9
Returns: 20783665
27
9
Returns: 706834676
93
7
Returns: 238039280
33
23
Returns: 931454125
22
20
Returns: 564120420
25
3
Returns: 25025
66
16
Returns: 14590075
71
30
Returns: 726145792
96
22
Returns: 851953200
25
12
Returns: 41757400
84
57
Returns: 523094720
75
47
Returns: 207033600
26
14
Returns: 323238824
21
4
Returns: 361284
51
39
Returns: 143531072
77
66
Returns: 964913990
68
8
Returns: 541304480
15
64
Returns: -1
59
59
Returns: -1
55
99
Returns: -1
51
72
Returns: -1
87
94
Returns: -1
5
3
Returns: 5
6
3
Returns: 21
7
3
Returns: 56
7
4
Returns: 84
7
5
Returns: 42
7
6
Returns: -1
4
2
Returns: 2
100
69
Returns: 522590000
99
70
Returns: 716292000
99
69
Returns: 626110000
100
71
Returns: 643593600
100
72
Returns: 257452000
100
68
Returns: 585228000
100
66
Returns: 540696700
99
55
Returns: 716928000
99
56
Returns: 636681600
95
45
Returns: 820040000
95
55
Returns: 646182400
100
78
Returns: 680016000
100
50
Returns: 545532000
41
20
Returns: 871076350