Problem Statement

Return the minimal possible value of the following formula when f is C-beautiful:

Use the following recursive definitions to generate the sequences x and y:
- x[0] = xzero
- For all integer i between 1 and N-1, inclusive, x[i] = (x[i-1] * xprod + xadd) % xmod
- y[0] = yzero
- For all integer i between 1 and N-1, inclusive, y[i] = (y[i-1] * yprod + yadd) % ymod
Definition
- Class:
- FunctionalEquation
- Method:
- minAbsSum
- Parameters:
- int, int, int, int, int, int, int, int, int, int
- Returns:
- long
- Method signature:
- long minAbsSum(int C, int N, int xzero, int xprod, int xadd, int xmod, int yzero, int yprod, int yadd, int ymod)
- (be sure your method is public)
Notes
- 64-bit integers should be used to generate the sequences x and y to avoid overflow.
Constraints
- C will be between 1 and 16, inclusive.
- N will be between 1 and 10,000, inclusive.
- xmod and ymod will each be between 1 and 1,000,000,000, inclusive.
- xzero, xprod and xadd will each be between 0 and xmod - 1, inclusive.
- yzero, yprod and yadd will each be between 0 and ymod - 1, inclusive.
Examples
3
10
0
1
1
456
1
1
1
456
Returns: 0
f(x) = x + 1 is a 3-beautiful function. Since x = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} and y = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, the sum of |f(x[i]) - y[i]| is 0.
4
10
0
1
1
456
1
1
1
456
Returns: 5
x and y are the same as in example 0, but f(x) = x + 1 is not a 4-beautiful function.
16
10000
654816386
163457813
165911619
987654321
817645381
871564816
614735118
876543210
Returns: 3150803357206
1
5934
74927846
81480857
44270004
85377744
445349752
237936238
176941747
553475509
Returns: 826192064195
1
10000
147699711
68110231
265456603
812158120
47517990
182546393
576960918
686078706
Returns: 2560688375452
2
7367
110025762
893294747
715669847
979932170
222156922
290269007
68706223
486937973
Returns: 2412152751798
2
10000
212567592
196211064
121137619
843638550
373823875
136263086
498416072
928126552
Returns: 2969341761391
3
636
458823023
111509468
155060020
941604921
620938878
361646331
65916225
659998485
Returns: 172494922206
3
10000
564817402
142750431
382045455
729267237
37853113
86806113
82137026
98560398
Returns: 1825669888536
4
9345
439352155
327925359
398844030
718458135
73660030
131636287
67423694
185252728
Returns: 2619775228955
4
10000
9275835
12319869
8400180
15934105
279749904
109805315
35610585
451230257
Returns: 2165187914265
5
2491
95172609
164382895
344966675
518954510
592776277
108002669
120033497
843654050
Returns: 596004732771
5
10000
607525771
219218649
643287356
669566825
13380803
35821365
14142682
41654185
Returns: 1677351978846
6
9307
510016244
238727332
292425665
807426510
589638738
401170801
142762906
944216784
Returns: 2746278190378
6
10000
93919351
213421540
131636656
225161331
118506227
59723643
41744078
182095964
Returns: 705661771196
7
7107
141805243
402957063
289631603
593400969
139402177
533004090
346100850
668882481
Returns: 1505051655067
7
10000
71772622
73164044
27005862
86000815
5748438
116253679
537894392
730103626
Returns: 3254314678690
8
8488
659169187
28409913
378183875
883570152
7347798
70060802
6364913
148026996
Returns: 3203311970591
8
10000
591635571
653962273
74652421
968295563
216467786
19740618
37577381
241418522
Returns: 3833983696658
9
7679
542938503
206695870
201610954
928854727
351329094
505684556
399462403
521884894
Returns: 2343982908067
9
10000
212677188
433862532
276162929
525440094
49373640
478939469
217079209
533958747
Returns: 1767149750066
10
5888
138865765
237123473
99354562
931858669
49959755
196796183
706140952
825207675
Returns: 1747727699689
10
10000
9230700
1222330
3415086
9984371
114468298
71283494
189070372
232021906
Returns: 1106563559709
11
143
399394688
227202703
208346752
471898586
68892498
56246726
295849487
338685732
Returns: 18745735369
11
10000
68043415
86105649
87899677
114316401
41486561
33169381
24337977
54969875
Returns: 386790741588
12
9269
19535542
18591734
16771103
23689366
333349106
368318229
148250950
817376090
Returns: 1882041785076
12
10000
174332796
283046337
275817006
302247656
30457374
3823673
25720447
41127596
Returns: 755011616901
13
8731
58765573
86262417
33355022
220256096
137668077
58482455
76813188
145222949
Returns: 542896026559
13
10000
288380741
76964473
23634883
377520761
120469632
1506009
71668959
166723144
Returns: 1296255932305
14
6136
228920379
263526060
200584307
934901150
1116921
2070187
2772385
3224418
Returns: 1424244849736
14
10000
134707445
172761231
79172
209707627
95199961
181241457
495064395
509813596
Returns: 1778192202354
15
1718
309016705
94994520
63674453
458914656
7905110
12128135
11496683
14238777
Returns: 199633864720
15
10000
325859158
466282452
501708870
631623003
35989158
130019381
35011394
133968317
Returns: 1597511470051
16
7481
30993756
44696234
33463367
81126605
601214124
287289792
40379410
818041955
Returns: 2781812799054
16
10000
117429278
331165382
692893978
741274454
527723017
623540543
400089019
685894564
Returns: 2395599628795
16
10000
0
1
32
1000000
527723017
623540543
400089019
685894564
Returns: 1732193269752
16
10000
31
1
32
1000000
527723017
623540543
400089019
685894564
Returns: 1732193269752
3
100
47
0
47
1000
23
1
1
1000
Returns: 2500
3
101
47
0
47
1000
23
1
9
100000
Returns: 22950
4
9876
42
0
47
1000
23
1
9
100000
Returns: 219410154
7
9853
100
1
100
1000
32154215
3252151
24512515
141536326
Returns: 347153664344
16
10000
17
13
5
70
14
3
74
99
Returns: 179976
16
10000
47
34
32
79
29
12
8
77
Returns: 267868
16
10000
999999999
1
999999999
1000000000
999999999
1
999999999
1000000000
Returns: 74968
16
10000
999999999
1
999999999
1000000000
0
1
1
1000000000
Returns: 9983900394646
16
10000
999999999
1
999999999
1000000000
176435876
167435187
467351289
1000000000
Returns: 4977459607130
16
3
1
2
3
61754
5
6
9
3746
Returns: 1
2
3
1746
52486
16254
23659449
1263
28576
1965
9256197
Returns: 12354086
16
10000
999999999
1
0
1000000000
6
3
1
10
Returns: 15000
16
10000
999999999
1
1
1000000000
499999999
1
2
1000000000
Returns: 4992049920040
16
10000
121845875
306684394
227859661
481765934
553475508
445349752
532217555
812669701
Returns: 2262234548866
16
10000
351323605
147699711
149851094
730417257
686078705
326208420
182546393
889772844
Returns: 2756104505611
16
10000
220137366
81695507
140839601
949118331
715669847
613711054
322805950
873226918
Returns: 3040228259681
16
10000
68706223
289224587
212567592
777206981
81288004
44638386
418462262
883488165
Returns: 2792748689953
16
10000
434026433
849040635
941604920
992516191
393007530
36130137
259570539
400427945
Returns: 3504342498595
16
10000
276956481
164039982
43643052
280937364
2639169
19133523
20243344
23351877
Returns: 701552611665
16
10000
260469815
35222838
72558668
910500676
439352155
327925359
398844030
718458135
Returns: 2745710005657
16
10000
73660030
131636287
67423694
185252728
9275835
12319869
8400180
15934105
Returns: 465649048881
16
10000
279749904
109805315
35610585
451230257
28539563
117322137
186532423
248402491
Returns: 1476233089237
16
10000
312151265
287803239
185905327
382875696
109131350
76757616
99185151
120033498
Returns: 984558894210
16
10000
111792113
143048379
105360174
643287357
616518298
807426509
428861746
888581008
Returns: 2746180421153
16
10000
292425665
90636430
589638738
853580353
284638086
21648924
241374931
401170802
Returns: 2909204660772
16
10000
131636656
164411375
193397423
339228196
71540614
69091682
136502684
152299428
Returns: 908457458838
16
10000
119346575
599422084
668882480
735206213
393601912
206698672
469431496
808284659
Returns: 2590763122294
16
10000
37600868
77443501
6533929
361784848
1388645
3341438
348151
5748439
Returns: 1793414724283
16
10000
659169187
28409913
378183875
883570152
7347798
70060802
6364913
148026996
Returns: 3765129963191
16
10000
591635571
653962273
74652421
968295563
216467786
19740618
37577381
241418522
Returns: 3830554493342
16
10000
145299368
542938503
243772918
891777679
47321621
42728262
54445332
59320409
Returns: 4127838346458
16
10000
560323007
212677188
519625634
965117086
533958746
583332387
375849286
852483212
Returns: 3038180309783
16
10000
45279047
195224988
48870213
217079210
66084108
113837252
40510787
237123474
Returns: 760087510961
16
10000
27
28
11
34
0
0
0
1
Returns: 20000
16
10000
40
0
23
57
37
40
29
44
Returns: 99980
16
10000
11
20
9
31
17
2
8
18
Returns: 24663
16
10000
79
60
21
81
19
1
37
65
Returns: 162394
16
10000
52
79
74
91
35
37
44
45
Returns: 112534
16
10000
37
22
36
64
54
34
10
77
Returns: 190784
16
10000
35
38
28
76
10
19
25
35
Returns: 91647
16
10000
10
19
10
28
0
4
0
5
Returns: 0
16
10000
14
19
17
57
72
60
23
91
Returns: 209937
16
10000
65
87
79
96
16
10
97
98
Returns: 244589
1
1
0
86522
4134
407635
1
0
21
2578
Returns: 0
16
1
0
135101200
293
1000000000
37619066
6499
79
1000000000
Returns: 0
6
955
0
0
12
93
0
0
0
2
Returns: 12
8
785
7
532
3804298
81380390
0
0
0
4
Returns: 15848324277
8
7674
50
9
187
4423
0
0
0
3
Returns: 16766300
3
1
71
42443
377060
705190426
7
80
0
4443
Returns: 0
9
7
0
254
677983
1000000000
0
640
286
6026
Returns: 1046973466
3
10000
2
0
0
18
668737
34154
628
1000000000
Returns: 2491194191182
9
41
6
672
0
121172274
41171
606386504
0
1000000000
Returns: 9172585980
9
4
0
6
4236
9651
533
113478
399868028
538424133
Returns: 40078590
15
4
32876560
1
0
88039523
14
92
274588
18084460
Returns: 16866178
11
54
0
0
39
50
2132
0
9442
85546
Returns: 0
6
7
0
9
0
46
8552
3
2190
9390
Returns: 18290
9
6194
3452064
6
5
91100346
0
4
5
21
Returns: 141389525959
5
67
67242
3215
392115
578097
2
0
0
74
Returns: 19016059
9
919
417
1083
519
4653
0
0
0
4
Returns: 1014354
1
10000
47
1013
24
543990368
35
18893
16
91693
Returns: 1365240944232
6
2
61
548655
1845320
662967648
928
46
2950
5315
Returns: 0
12
8
0
1
69
620
82
0
7
230
Returns: 8
13
11
5
0
14
26
0
3451
320
829879
Returns: 1594359