Problem Statement
Bob is going to create a graph with N nodes. The graph will be constructed in two steps. First, Bob will take N isolated vertices, label them 1 through N and color each of them using one of K colors. Then, Bob will add some directed edges to the graph. For each i between 2 and N, inclusive, Bob may choose a single value j < i such that the nodes i and j have different colors. If he does, he will add the edge from i to j to his graph. Note that Bob may choose not to add any edge from node i, even if there are some valid choices of j.
Two graphs are considered the same if they have the same node colors and the same set of edges.
You are given the
Definition
- Class:
- ColorfulLineGraphs
- Method:
- countWays
- Parameters:
- long, long, int
- Returns:
- int
- Method signature:
- int countWays(long N, long K, int M)
- (be sure your method is public)
Constraints
- N will be between 1 and 1,000,000,000,000 (10^12), inclusive.
- K will be between 1 and 1,000,000,000,000 (10^12), inclusive.
- M will be between 2 and 1,000,000 (10^6), inclusive.
Examples
3
2
100000
Returns: 24
The 24 different graphs are shown below. In each picture, the vertices have labels 1, 2, 3 from the left to the right.
15
3
1000000
Returns: 510625
100000
100000
999999
Returns: 185185
1000000000000
6
1000000
Returns: 109376
5000
1000000000000
314159
Returns: 202996
479490454733
261349224448
848601
Returns: 188578
481274701232
927843027765
457796
Returns: 114449
901590959996
599844610260
847419
Returns: 535212
560729190012
550615278251
270222
Returns: 135111
538436296825
101295900677
762216
Returns: 95277
225640
789563495545
37602
Returns: 14623
163808
848788449304
661686
Returns: 441124
839918
435737878813
569804
Returns: 427353
427721
163923716305
276842
Returns: 138421
117668
319925035533
591244
Returns: 443433
22
598
210
Returns: 70
733
389
902
Returns: 451
588
919
987
Returns: 658
719
519
716
Returns: 537
17
871
188
Returns: 103
578136583404
968653
767854
Returns: 383927
464617359295
114915
747492
Returns: 186873
400540797706
144130
420084
Returns: 93352
50068332331
987436
163970
Returns: 131176
119651848333
255949
123840
Returns: 17845
1
1000000000000
654321
Returns: 561379
1000000000000
1
29810
Returns: 1
5000000000
5000000000
100007
Returns: 0
121412521512
112141251512
10
Returns: 0
1000000000000
100
2
Returns: 0
1000000000000
1000000
10
Returns: 0
1000000000000
444
2
Returns: 0
1000000000000
1000000000000
10
Returns: 0
233333333333
233333
73
Returns: 0
11
13
5
Returns: 0
18973812574
12398712544
999999
Returns: 976690
1
58
6
Returns: 4
1000001
6
1000000
Returns: 656256
1
1000000000000
5
Returns: 0