[TASK] Solved day 9 + added benchmarking options to the main method
This commit is contained in:
1 parent
f5850ceb2b
commit
e053e4ed61
5 files changed
+1153
-22
No files matched your search
+1000
@@ -0,0 +1,1000 @@
|
|||||||
|
33
|
||||||
|
12
|
||||||
|
43
|
||||||
|
4
|
||||||
|
19
|
||||||
|
48
|
||||||
|
21
|
||||||
|
13
|
||||||
|
29
|
||||||
|
34
|
||||||
|
20
|
||||||
|
24
|
||||||
|
25
|
||||||
|
40
|
||||||
|
28
|
||||||
|
31
|
||||||
|
38
|
||||||
|
2
|
||||||
|
50
|
||||||
|
11
|
||||||
|
44
|
||||||
|
49
|
||||||
|
42
|
||||||
|
16
|
||||||
|
41
|
||||||
|
46
|
||||||
|
54
|
||||||
|
35
|
||||||
|
6
|
||||||
|
15
|
||||||
|
8
|
||||||
|
47
|
||||||
|
10
|
||||||
|
22
|
||||||
|
17
|
||||||
|
60
|
||||||
|
19
|
||||||
|
12
|
||||||
|
13
|
||||||
|
14
|
||||||
|
18
|
||||||
|
28
|
||||||
|
20
|
||||||
|
25
|
||||||
|
21
|
||||||
|
23
|
||||||
|
27
|
||||||
|
39
|
||||||
|
24
|
||||||
|
16
|
||||||
|
26
|
||||||
|
29
|
||||||
|
40
|
||||||
|
30
|
||||||
|
37
|
||||||
|
31
|
||||||
|
33
|
||||||
|
43
|
||||||
|
32
|
||||||
|
34
|
||||||
|
44
|
||||||
|
41
|
||||||
|
49
|
||||||
|
35
|
||||||
|
36
|
||||||
|
52
|
||||||
|
61
|
||||||
|
53
|
||||||
|
42
|
||||||
|
76
|
||||||
|
45
|
||||||
|
50
|
||||||
|
46
|
||||||
|
47
|
||||||
|
48
|
||||||
|
55
|
||||||
|
93
|
||||||
|
80
|
||||||
|
67
|
||||||
|
89
|
||||||
|
142
|
||||||
|
69
|
||||||
|
74
|
||||||
|
75
|
||||||
|
70
|
||||||
|
149
|
||||||
|
71
|
||||||
|
77
|
||||||
|
78
|
||||||
|
81
|
||||||
|
242
|
||||||
|
111
|
||||||
|
88
|
||||||
|
87
|
||||||
|
91
|
||||||
|
94
|
||||||
|
155
|
||||||
|
95
|
||||||
|
119
|
||||||
|
137
|
||||||
|
188
|
||||||
|
136
|
||||||
|
162
|
||||||
|
138
|
||||||
|
139
|
||||||
|
140
|
||||||
|
146
|
||||||
|
164
|
||||||
|
221
|
||||||
|
172
|
||||||
|
148
|
||||||
|
159
|
||||||
|
215
|
||||||
|
228
|
||||||
|
168
|
||||||
|
175
|
||||||
|
182
|
||||||
|
229
|
||||||
|
278
|
||||||
|
305
|
||||||
|
340
|
||||||
|
214
|
||||||
|
370
|
||||||
|
277
|
||||||
|
273
|
||||||
|
275
|
||||||
|
282
|
||||||
|
310
|
||||||
|
302
|
||||||
|
288
|
||||||
|
286
|
||||||
|
321
|
||||||
|
568
|
||||||
|
307
|
||||||
|
631
|
||||||
|
357
|
||||||
|
845
|
||||||
|
343
|
||||||
|
350
|
||||||
|
612
|
||||||
|
389
|
||||||
|
598
|
||||||
|
643
|
||||||
|
535
|
||||||
|
561
|
||||||
|
620
|
||||||
|
552
|
||||||
|
662
|
||||||
|
548
|
||||||
|
885
|
||||||
|
557
|
||||||
|
570
|
||||||
|
678
|
||||||
|
574
|
||||||
|
593
|
||||||
|
671
|
||||||
|
859
|
||||||
|
664
|
||||||
|
985
|
||||||
|
1257
|
||||||
|
746
|
||||||
|
693
|
||||||
|
732
|
||||||
|
1877
|
||||||
|
924
|
||||||
|
937
|
||||||
|
1100
|
||||||
|
1083
|
||||||
|
1366
|
||||||
|
1105
|
||||||
|
1433
|
||||||
|
1122
|
||||||
|
1118
|
||||||
|
1131
|
||||||
|
1724
|
||||||
|
1127
|
||||||
|
1163
|
||||||
|
1320
|
||||||
|
1167
|
||||||
|
1769
|
||||||
|
1335
|
||||||
|
2179
|
||||||
|
1357
|
||||||
|
1425
|
||||||
|
1478
|
||||||
|
2183
|
||||||
|
1899
|
||||||
|
2855
|
||||||
|
2440
|
||||||
|
1861
|
||||||
|
2037
|
||||||
|
2205
|
||||||
|
2294
|
||||||
|
2227
|
||||||
|
2285
|
||||||
|
2438
|
||||||
|
3339
|
||||||
|
2451
|
||||||
|
2290
|
||||||
|
2487
|
||||||
|
2330
|
||||||
|
3493
|
||||||
|
2502
|
||||||
|
2760
|
||||||
|
4406
|
||||||
|
2692
|
||||||
|
2782
|
||||||
|
2835
|
||||||
|
2903
|
||||||
|
4819
|
||||||
|
3760
|
||||||
|
4665
|
||||||
|
6870
|
||||||
|
4714
|
||||||
|
4989
|
||||||
|
4264
|
||||||
|
8482
|
||||||
|
6247
|
||||||
|
4512
|
||||||
|
6595
|
||||||
|
4620
|
||||||
|
4741
|
||||||
|
4781
|
||||||
|
9770
|
||||||
|
4817
|
||||||
|
9406
|
||||||
|
5194
|
||||||
|
5262
|
||||||
|
5452
|
||||||
|
5474
|
||||||
|
10646
|
||||||
|
8425
|
||||||
|
5738
|
||||||
|
10011
|
||||||
|
9083
|
||||||
|
8024
|
||||||
|
9730
|
||||||
|
8978
|
||||||
|
8776
|
||||||
|
10441
|
||||||
|
10867
|
||||||
|
9132
|
||||||
|
9253
|
||||||
|
15427
|
||||||
|
9361
|
||||||
|
9401
|
||||||
|
9522
|
||||||
|
19417
|
||||||
|
10291
|
||||||
|
10079
|
||||||
|
10456
|
||||||
|
14535
|
||||||
|
14996
|
||||||
|
10926
|
||||||
|
11212
|
||||||
|
18339
|
||||||
|
14716
|
||||||
|
13762
|
||||||
|
16800
|
||||||
|
17002
|
||||||
|
19842
|
||||||
|
18029
|
||||||
|
19988
|
||||||
|
28418
|
||||||
|
18385
|
||||||
|
18493
|
||||||
|
37550
|
||||||
|
18614
|
||||||
|
18762
|
||||||
|
18883
|
||||||
|
18923
|
||||||
|
24238
|
||||||
|
20370
|
||||||
|
28297
|
||||||
|
32874
|
||||||
|
25461
|
||||||
|
22138
|
||||||
|
29419
|
||||||
|
24688
|
||||||
|
24974
|
||||||
|
33209
|
||||||
|
30764
|
||||||
|
44384
|
||||||
|
33802
|
||||||
|
35031
|
||||||
|
55019
|
||||||
|
36414
|
||||||
|
50556
|
||||||
|
50435
|
||||||
|
37147
|
||||||
|
37416
|
||||||
|
37497
|
||||||
|
49526
|
||||||
|
37685
|
||||||
|
47112
|
||||||
|
39293
|
||||||
|
49212
|
||||||
|
45058
|
||||||
|
74477
|
||||||
|
46826
|
||||||
|
70949
|
||||||
|
82555
|
||||||
|
84358
|
||||||
|
119702
|
||||||
|
70032
|
||||||
|
81800
|
||||||
|
80089
|
||||||
|
68833
|
||||||
|
70216
|
||||||
|
71445
|
||||||
|
74099
|
||||||
|
73911
|
||||||
|
74563
|
||||||
|
74644
|
||||||
|
75182
|
||||||
|
194346
|
||||||
|
76790
|
||||||
|
82743
|
||||||
|
109130
|
||||||
|
119157
|
||||||
|
143310
|
||||||
|
91884
|
||||||
|
113891
|
||||||
|
142394
|
||||||
|
115659
|
||||||
|
185920
|
||||||
|
184107
|
||||||
|
138865
|
||||||
|
139049
|
||||||
|
142932
|
||||||
|
149281
|
||||||
|
146008
|
||||||
|
140278
|
||||||
|
141661
|
||||||
|
146627
|
||||||
|
167066
|
||||||
|
151353
|
||||||
|
201014
|
||||||
|
225675
|
||||||
|
229370
|
||||||
|
430384
|
||||||
|
243856
|
||||||
|
174627
|
||||||
|
205775
|
||||||
|
230749
|
||||||
|
207543
|
||||||
|
241165
|
||||||
|
229550
|
||||||
|
254524
|
||||||
|
254708
|
||||||
|
277914
|
||||||
|
279143
|
||||||
|
288940
|
||||||
|
372302
|
||||||
|
281939
|
||||||
|
295908
|
||||||
|
448708
|
||||||
|
286905
|
||||||
|
293014
|
||||||
|
541613
|
||||||
|
654241
|
||||||
|
650216
|
||||||
|
403997
|
||||||
|
380402
|
||||||
|
1191829
|
||||||
|
382170
|
||||||
|
664109
|
||||||
|
404177
|
||||||
|
460299
|
||||||
|
517654
|
||||||
|
437093
|
||||||
|
484074
|
||||||
|
557057
|
||||||
|
543464
|
||||||
|
572157
|
||||||
|
568083
|
||||||
|
561082
|
||||||
|
568844
|
||||||
|
579919
|
||||||
|
678078
|
||||||
|
1078736
|
||||||
|
667307
|
||||||
|
669075
|
||||||
|
673416
|
||||||
|
762572
|
||||||
|
1077593
|
||||||
|
784399
|
||||||
|
1482733
|
||||||
|
784579
|
||||||
|
786347
|
||||||
|
841270
|
||||||
|
864476
|
||||||
|
1106168
|
||||||
|
921167
|
||||||
|
954747
|
||||||
|
980557
|
||||||
|
1045156
|
||||||
|
1358504
|
||||||
|
2051577
|
||||||
|
1129165
|
||||||
|
1129926
|
||||||
|
1141001
|
||||||
|
1148763
|
||||||
|
1247226
|
||||||
|
1336382
|
||||||
|
1537892
|
||||||
|
1340723
|
||||||
|
1342491
|
||||||
|
1435988
|
||||||
|
1546971
|
||||||
|
1568978
|
||||||
|
1570746
|
||||||
|
2278689
|
||||||
|
1707514
|
||||||
|
1627617
|
||||||
|
1705746
|
||||||
|
2062168
|
||||||
|
2527528
|
||||||
|
2175082
|
||||||
|
2025713
|
||||||
|
2676136
|
||||||
|
2270166
|
||||||
|
2259091
|
||||||
|
2465547
|
||||||
|
2270927
|
||||||
|
2711747
|
||||||
|
4303753
|
||||||
|
3963516
|
||||||
|
3046469
|
||||||
|
3063605
|
||||||
|
2968340
|
||||||
|
2683214
|
||||||
|
4851218
|
||||||
|
4982674
|
||||||
|
5305560
|
||||||
|
3274724
|
||||||
|
3198363
|
||||||
|
3333363
|
||||||
|
3335131
|
||||||
|
3886708
|
||||||
|
3731459
|
||||||
|
4087881
|
||||||
|
6358047
|
||||||
|
4200795
|
||||||
|
4491260
|
||||||
|
4529257
|
||||||
|
4530018
|
||||||
|
7459600
|
||||||
|
4736474
|
||||||
|
4954141
|
||||||
|
7423012
|
||||||
|
5651554
|
||||||
|
6016577
|
||||||
|
6379832
|
||||||
|
5746819
|
||||||
|
5881577
|
||||||
|
6609855
|
||||||
|
6473087
|
||||||
|
9936815
|
||||||
|
9266492
|
||||||
|
6608087
|
||||||
|
12464855
|
||||||
|
12413741
|
||||||
|
7066590
|
||||||
|
15283069
|
||||||
|
7819340
|
||||||
|
8288676
|
||||||
|
8692055
|
||||||
|
9484159
|
||||||
|
9265731
|
||||||
|
9059275
|
||||||
|
10970718
|
||||||
|
10483293
|
||||||
|
14918046
|
||||||
|
10605695
|
||||||
|
11398373
|
||||||
|
21524130
|
||||||
|
11628396
|
||||||
|
12126651
|
||||||
|
16332321
|
||||||
|
12354664
|
||||||
|
13081174
|
||||||
|
13539677
|
||||||
|
14885930
|
||||||
|
15873818
|
||||||
|
18543434
|
||||||
|
17085071
|
||||||
|
15355266
|
||||||
|
15758645
|
||||||
|
16108016
|
||||||
|
16511395
|
||||||
|
16980731
|
||||||
|
17751330
|
||||||
|
28113309
|
||||||
|
18325006
|
||||||
|
22234091
|
||||||
|
21454011
|
||||||
|
32958889
|
||||||
|
22004068
|
||||||
|
22732346
|
||||||
|
33580662
|
||||||
|
28866059
|
||||||
|
31624608
|
||||||
|
24481315
|
||||||
|
25435838
|
||||||
|
25894341
|
||||||
|
30061905
|
||||||
|
28425607
|
||||||
|
30241196
|
||||||
|
36868440
|
||||||
|
38745486
|
||||||
|
31113911
|
||||||
|
55726217
|
||||||
|
31866661
|
||||||
|
64072800
|
||||||
|
41947233
|
||||||
|
34732061
|
||||||
|
36076336
|
||||||
|
57518949
|
||||||
|
39779017
|
||||||
|
43458079
|
||||||
|
44186357
|
||||||
|
46485383
|
||||||
|
47213661
|
||||||
|
50375656
|
||||||
|
68312723
|
||||||
|
92794038
|
||||||
|
70020213
|
||||||
|
59213376
|
||||||
|
96081816
|
||||||
|
54319948
|
||||||
|
58487512
|
||||||
|
58666803
|
||||||
|
80616852
|
||||||
|
74511078
|
||||||
|
62980572
|
||||||
|
67942997
|
||||||
|
78023569
|
||||||
|
78190140
|
||||||
|
70808397
|
||||||
|
76679294
|
||||||
|
75855353
|
||||||
|
90154673
|
||||||
|
83237096
|
||||||
|
113533324
|
||||||
|
121481648
|
||||||
|
90671740
|
||||||
|
97589317
|
||||||
|
101533609
|
||||||
|
109589032
|
||||||
|
112807460
|
||||||
|
141004141
|
||||||
|
172100395
|
||||||
|
112986751
|
||||||
|
208947138
|
||||||
|
161260665
|
||||||
|
223015257
|
||||||
|
121647375
|
||||||
|
187612601
|
||||||
|
235180699
|
||||||
|
147487691
|
||||||
|
168344813
|
||||||
|
204205064
|
||||||
|
146663750
|
||||||
|
152534647
|
||||||
|
159092449
|
||||||
|
166010026
|
||||||
|
210576068
|
||||||
|
312673776
|
||||||
|
188261057
|
||||||
|
192205349
|
||||||
|
248197359
|
||||||
|
199122926
|
||||||
|
369668517
|
||||||
|
222396492
|
||||||
|
259650501
|
||||||
|
253990892
|
||||||
|
234634126
|
||||||
|
395894791
|
||||||
|
464566960
|
||||||
|
307924415
|
||||||
|
268311125
|
||||||
|
289992188
|
||||||
|
452402423
|
||||||
|
294151441
|
||||||
|
572324277
|
||||||
|
363297513
|
||||||
|
460516474
|
||||||
|
516508484
|
||||||
|
311627096
|
||||||
|
354271083
|
||||||
|
387383983
|
||||||
|
432972560
|
||||||
|
470593851
|
||||||
|
617288405
|
||||||
|
433757052
|
||||||
|
630528917
|
||||||
|
608261975
|
||||||
|
549642689
|
||||||
|
457030618
|
||||||
|
553801942
|
||||||
|
983399741
|
||||||
|
502945251
|
||||||
|
558303313
|
||||||
|
562462566
|
||||||
|
648422524
|
||||||
|
584143629
|
||||||
|
601619284
|
||||||
|
699011079
|
||||||
|
879805997
|
||||||
|
530627549
|
||||||
|
665898179
|
||||||
|
1202224466
|
||||||
|
741655066
|
||||||
|
928915501
|
||||||
|
787243643
|
||||||
|
890787670
|
||||||
|
1133474168
|
||||||
|
904350903
|
||||||
|
1324544722
|
||||||
|
1209881259
|
||||||
|
959975869
|
||||||
|
987658167
|
||||||
|
1006673307
|
||||||
|
1010832560
|
||||||
|
1033572800
|
||||||
|
1061248564
|
||||||
|
1087088880
|
||||||
|
1088930862
|
||||||
|
1093090115
|
||||||
|
1114771178
|
||||||
|
1132246833
|
||||||
|
1196525728
|
||||||
|
1453141822
|
||||||
|
1272282615
|
||||||
|
1317871192
|
||||||
|
1938180794
|
||||||
|
1691594546
|
||||||
|
1528898709
|
||||||
|
1678031313
|
||||||
|
1902014821
|
||||||
|
3148062053
|
||||||
|
1993548669
|
||||||
|
1864326772
|
||||||
|
2017505867
|
||||||
|
1966649176
|
||||||
|
1947634036
|
||||||
|
1994331474
|
||||||
|
2094821364
|
||||||
|
2072081124
|
||||||
|
2257774292
|
||||||
|
2148337444
|
||||||
|
2176019742
|
||||||
|
3350864407
|
||||||
|
2311296906
|
||||||
|
3639228582
|
||||||
|
2328772561
|
||||||
|
2771013014
|
||||||
|
2846769901
|
||||||
|
3009465738
|
||||||
|
3182197964
|
||||||
|
3623720073
|
||||||
|
3206930022
|
||||||
|
3522447378
|
||||||
|
3542358085
|
||||||
|
3766341593
|
||||||
|
3811960808
|
||||||
|
4205408328
|
||||||
|
3830975948
|
||||||
|
3914283212
|
||||||
|
3941965510
|
||||||
|
6531913116
|
||||||
|
4066412598
|
||||||
|
5158066807
|
||||||
|
4220418568
|
||||||
|
4433794034
|
||||||
|
4324357186
|
||||||
|
6140733369
|
||||||
|
5099785575
|
||||||
|
4640069467
|
||||||
|
6658730709
|
||||||
|
5175542462
|
||||||
|
6389127986
|
||||||
|
5856235639
|
||||||
|
6191663702
|
||||||
|
7484323595
|
||||||
|
6729377400
|
||||||
|
11887444207
|
||||||
|
7608770683
|
||||||
|
7308699678
|
||||||
|
7597317541
|
||||||
|
7642936756
|
||||||
|
9739855042
|
||||||
|
8266322696
|
||||||
|
7856248722
|
||||||
|
8654212602
|
||||||
|
11704742163
|
||||||
|
8286831166
|
||||||
|
11369446867
|
||||||
|
8544775754
|
||||||
|
9815611929
|
||||||
|
10516020888
|
||||||
|
10275328037
|
||||||
|
10496305106
|
||||||
|
11029197453
|
||||||
|
14478494868
|
||||||
|
11031778101
|
||||||
|
12245363625
|
||||||
|
15340572317
|
||||||
|
12921041102
|
||||||
|
14213700995
|
||||||
|
14038077078
|
||||||
|
14906017219
|
||||||
|
14917470361
|
||||||
|
14951636434
|
||||||
|
15240254297
|
||||||
|
18102443095
|
||||||
|
21304525490
|
||||||
|
18360387683
|
||||||
|
16143079888
|
||||||
|
19316028619
|
||||||
|
16831606920
|
||||||
|
18562159203
|
||||||
|
18820103791
|
||||||
|
19041080860
|
||||||
|
25067274531
|
||||||
|
22520691662
|
||||||
|
29378649395
|
||||||
|
21525502559
|
||||||
|
27172277341
|
||||||
|
23277141726
|
||||||
|
48476802831
|
||||||
|
25166404727
|
||||||
|
26959118180
|
||||||
|
43416726473
|
||||||
|
28251778073
|
||||||
|
40018910965
|
||||||
|
29823487580
|
||||||
|
29869106795
|
||||||
|
30191890731
|
||||||
|
32974686808
|
||||||
|
34245522983
|
||||||
|
35393766123
|
||||||
|
34503467571
|
||||||
|
34705239091
|
||||||
|
38136132410
|
||||||
|
35872687780
|
||||||
|
41082850865
|
||||||
|
47292858933
|
||||||
|
40566583419
|
||||||
|
44046194221
|
||||||
|
46691907286
|
||||||
|
44802644285
|
||||||
|
69208706662
|
||||||
|
48443546453
|
||||||
|
55035511522
|
||||||
|
52125522907
|
||||||
|
53418182800
|
||||||
|
60060997526
|
||||||
|
80196410408
|
||||||
|
58075265653
|
||||||
|
91049952461
|
||||||
|
78291717204
|
||||||
|
62843793603
|
||||||
|
64897129822
|
||||||
|
67220209791
|
||||||
|
68950762074
|
||||||
|
69897233694
|
||||||
|
78549661792
|
||||||
|
78702715829
|
||||||
|
104863641811
|
||||||
|
76439271199
|
||||||
|
81649434284
|
||||||
|
91339053154
|
||||||
|
84612777640
|
||||||
|
95135453739
|
||||||
|
145390033273
|
||||||
|
96928167192
|
||||||
|
101861729253
|
||||||
|
100569069360
|
||||||
|
125295475444
|
||||||
|
105543705707
|
||||||
|
185740116115
|
||||||
|
118136263179
|
||||||
|
122972395475
|
||||||
|
131794555677
|
||||||
|
127740923425
|
||||||
|
130064003394
|
||||||
|
132117339613
|
||||||
|
147500423866
|
||||||
|
136170971865
|
||||||
|
138847995768
|
||||||
|
157252377621
|
||||||
|
220783749505
|
||||||
|
155141987028
|
||||||
|
268288311478
|
||||||
|
161052048839
|
||||||
|
365216478670
|
||||||
|
212353701065
|
||||||
|
179748231379
|
||||||
|
497011034347
|
||||||
|
273278250207
|
||||||
|
207405434960
|
||||||
|
255359478838
|
||||||
|
206112775067
|
||||||
|
275388640800
|
||||||
|
223679968886
|
||||||
|
270472819341
|
||||||
|
402267375018
|
||||||
|
250713318900
|
||||||
|
767483853688
|
||||||
|
257804926819
|
||||||
|
387476818451
|
||||||
|
270965335381
|
||||||
|
275018967633
|
||||||
|
318304426460
|
||||||
|
296100373389
|
||||||
|
312394364649
|
||||||
|
428420237235
|
||||||
|
316194035867
|
||||||
|
340800280218
|
||||||
|
367164823906
|
||||||
|
506072797738
|
||||||
|
703808878035
|
||||||
|
385861006446
|
||||||
|
413518210027
|
||||||
|
481501415867
|
||||||
|
1153344860134
|
||||||
|
499068609686
|
||||||
|
429792743953
|
||||||
|
474393287786
|
||||||
|
481484895705
|
||||||
|
1197276597641
|
||||||
|
508518245719
|
||||||
|
664231528927
|
||||||
|
699385572616
|
||||||
|
528770262200
|
||||||
|
1022113304495
|
||||||
|
615819247851
|
||||||
|
571119341022
|
||||||
|
634498462327
|
||||||
|
608494738038
|
||||||
|
780683033933
|
||||||
|
656994316085
|
||||||
|
887911497813
|
||||||
|
726661286664
|
||||||
|
1232734084402
|
||||||
|
1029337457878
|
||||||
|
799379216473
|
||||||
|
884929616132
|
||||||
|
928861353639
|
||||||
|
904186031739
|
||||||
|
1661863105853
|
||||||
|
911277639658
|
||||||
|
1393447861851
|
||||||
|
1235179532383
|
||||||
|
1457631615839
|
||||||
|
1117012983757
|
||||||
|
1896965613329
|
||||||
|
1351802374955
|
||||||
|
1297780627686
|
||||||
|
1099889603222
|
||||||
|
1179614079060
|
||||||
|
2332623687624
|
||||||
|
1630847318403
|
||||||
|
1899268819695
|
||||||
|
1880572637155
|
||||||
|
1383655602749
|
||||||
|
1544905813898
|
||||||
|
1526040503137
|
||||||
|
1611590902796
|
||||||
|
1710656856131
|
||||||
|
1684308832605
|
||||||
|
1703565248212
|
||||||
|
1789115647871
|
||||||
|
2649583002641
|
||||||
|
1815463671397
|
||||||
|
2011167242880
|
||||||
|
3156496716694
|
||||||
|
2296627062817
|
||||||
|
2414793611443
|
||||||
|
3199119274146
|
||||||
|
2705654582197
|
||||||
|
2279503682282
|
||||||
|
5098388093841
|
||||||
|
2397670230908
|
||||||
|
2483545205971
|
||||||
|
2883179327272
|
||||||
|
2909696105886
|
||||||
|
3499772504002
|
||||||
|
2928561416647
|
||||||
|
4009585709108
|
||||||
|
5495746336963
|
||||||
|
3070946317035
|
||||||
|
4175623505778
|
||||||
|
3295899735401
|
||||||
|
5571290328137
|
||||||
|
5280849558180
|
||||||
|
3492680896083
|
||||||
|
9456473063958
|
||||||
|
6205595841287
|
||||||
|
3826630914277
|
||||||
|
7496058324749
|
||||||
|
5179806390089
|
||||||
|
4694297293725
|
||||||
|
6590417117221
|
||||||
|
4881215436879
|
||||||
|
5189199788168
|
||||||
|
4677173913190
|
||||||
|
5326231647555
|
||||||
|
5307366336794
|
||||||
|
5366724533243
|
||||||
|
5792875433158
|
||||||
|
7990197029126
|
||||||
|
5999507733682
|
||||||
|
6224461152048
|
||||||
|
6366846052436
|
||||||
|
9276542158322
|
||||||
|
11505310710228
|
||||||
|
8475706125490
|
||||||
|
6788580631484
|
||||||
|
11871266675401
|
||||||
|
15264286756974
|
||||||
|
9859526948519
|
||||||
|
15823319116394
|
||||||
|
10020528941280
|
||||||
|
8503804827467
|
||||||
|
9371471206915
|
||||||
|
9558389350069
|
||||||
|
9575512730604
|
||||||
|
14697702854470
|
||||||
|
9866373701358
|
||||||
|
9984540249984
|
||||||
|
10003405560745
|
||||||
|
10633597984349
|
||||||
|
15370978940597
|
||||||
|
16002913294427
|
||||||
|
13155426683920
|
||||||
|
13013041783532
|
||||||
|
23846685066087
|
||||||
|
12591307204484
|
||||||
|
15292385458951
|
||||||
|
24568927617273
|
||||||
|
16160051838399
|
||||||
|
19987945810729
|
||||||
|
16346969981553
|
||||||
|
17875276034382
|
||||||
|
20618138234333
|
||||||
|
19725900649877
|
||||||
|
19424763051427
|
||||||
|
18062194177536
|
||||||
|
18079317558071
|
||||||
|
18946983937519
|
||||||
|
19441886431962
|
||||||
|
20209110714953
|
||||||
|
22594712765229
|
||||||
|
19850913951342
|
||||||
|
36437992270571
|
||||||
|
20637003545094
|
||||||
|
23224905188833
|
||||||
|
28751359042883
|
||||||
|
29158339978347
|
||||||
|
33364537398873
|
||||||
|
25604348988016
|
||||||
|
27883692663435
|
||||||
|
35816212393317
|
||||||
|
31452437297350
|
||||||
|
32507021819952
|
||||||
|
37504080609498
|
||||||
|
34409164159089
|
||||||
|
34222246015935
|
||||||
|
35937470211918
|
||||||
|
40362904194971
|
||||||
|
55258098825279
|
||||||
|
37913108128878
|
||||||
|
73320293002815
|
||||||
|
37026301495590
|
||||||
|
38388870369481
|
||||||
|
43075819140175
|
||||||
|
59025873914575
|
||||||
|
48520696208529
|
||||||
|
40487917496436
|
||||||
|
43861908733927
|
||||||
|
46241352533110
|
||||||
|
60610777275697
|
||||||
|
63993219357497
|
||||||
|
70159716227853
|
||||||
|
53488041651451
|
||||||
|
57056786285366
|
||||||
|
59336129960785
|
||||||
|
70038458409252
|
||||||
|
63959459117302
|
||||||
|
66729267835887
|
||||||
|
68631410175024
|
||||||
|
70346634371007
|
||||||
|
129372508285582
|
||||||
|
72963771707508
|
||||||
|
75415171865071
|
||||||
|
74939409624468
|
||||||
|
83267654028700
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
35
|
||||||
|
20
|
||||||
|
15
|
||||||
|
25
|
||||||
|
47
|
||||||
|
40
|
||||||
|
62
|
||||||
|
55
|
||||||
|
65
|
||||||
|
95
|
||||||
|
102
|
||||||
|
117
|
||||||
|
150
|
||||||
|
182
|
||||||
|
127
|
||||||
|
219
|
||||||
|
299
|
||||||
|
277
|
||||||
|
309
|
||||||
|
576
|
||||||
+3
-3
@@ -1,10 +1,10 @@
|
|||||||
use super::util;
|
use super::util;
|
||||||
use regex::{Regex, Captures};
|
use regex::{Regex, Captures};
|
||||||
use std::collections::{HashMap, HashSet, VecDeque};
|
use std::collections::{HashMap, HashSet, VecDeque};
|
||||||
use std::time::Instant;
|
// use std::time::Instant;
|
||||||
|
|
||||||
pub fn solve() {
|
pub fn solve() {
|
||||||
let now = Instant::now();
|
// let now = Instant::now();
|
||||||
let lines = util::read_file("input/day7.txt");
|
let lines = util::read_file("input/day7.txt");
|
||||||
let rules = lines.iter()
|
let rules = lines.iter()
|
||||||
.map(|s| Rule::parse(s))
|
.map(|s| Rule::parse(s))
|
||||||
@@ -26,7 +26,7 @@ pub fn solve() {
|
|||||||
|
|
||||||
let part2 = count_bags("shiny gold", &rules);
|
let part2 = count_bags("shiny gold", &rules);
|
||||||
println!("Day 7 Part 2: {}", part2 - 1);
|
println!("Day 7 Part 2: {}", part2 - 1);
|
||||||
println!("Algo's took {} μs", now.elapsed().as_micros());
|
// println!("Algo's took {} μs", now.elapsed().as_micros());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+82
@@ -0,0 +1,82 @@
|
|||||||
|
use super::util;
|
||||||
|
use std::collections::BTreeSet;
|
||||||
|
|
||||||
|
pub fn solve() {
|
||||||
|
let lines = util::read_file("input/day9.txt");
|
||||||
|
let nums = lines.iter().map(|s| s.parse::<u64>().unwrap()).collect::<Vec<_>>();
|
||||||
|
|
||||||
|
let part1 = solve_part1(&nums, 25);
|
||||||
|
println!("Day 9 Part 1: {}", part1);
|
||||||
|
|
||||||
|
let part2 = solve_part2(&nums, part1);
|
||||||
|
println!("Day 9 Part 2: {}", part2.iter().min().unwrap() + part2.iter().max().unwrap())
|
||||||
|
}
|
||||||
|
|
||||||
|
fn solve_part1(nums: &Vec<u64>, preamble: usize) -> u64 {
|
||||||
|
|
||||||
|
let mut set = BTreeSet::new();
|
||||||
|
for i in 0..preamble {
|
||||||
|
set.insert(nums[i]);
|
||||||
|
}
|
||||||
|
for i in preamble..nums.len() {
|
||||||
|
|
||||||
|
let n = nums[i];
|
||||||
|
if !is_sum(n, &set) {
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
set.remove(&nums[i - preamble]);
|
||||||
|
set.insert(n);
|
||||||
|
|
||||||
|
}
|
||||||
|
panic!("No number that is not a sum found in the entire list!");
|
||||||
|
}
|
||||||
|
|
||||||
|
fn solve_part2(nums: &Vec<u64>, target: u64) -> &[u64]{
|
||||||
|
|
||||||
|
// find a contiguous set of at least two numbers in your list which sum to the target
|
||||||
|
let mut b: usize = 0;
|
||||||
|
let mut e: usize = 1;
|
||||||
|
|
||||||
|
let mut sum = nums[b] + nums[e];
|
||||||
|
|
||||||
|
loop {
|
||||||
|
|
||||||
|
if sum < target {
|
||||||
|
e += 1;
|
||||||
|
sum += nums[e]
|
||||||
|
} else if sum > target {
|
||||||
|
sum -= nums[b];
|
||||||
|
b += 1;
|
||||||
|
} else {
|
||||||
|
// We found the solution!
|
||||||
|
return &nums[b..(e+1)];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
fn is_sum(n: u64, set: &BTreeSet<u64>) -> bool {
|
||||||
|
|
||||||
|
let mut forward = set.iter();
|
||||||
|
let mut backward = set.iter().rev();
|
||||||
|
|
||||||
|
let mut x = forward.next().unwrap_or(&u64::max_value());
|
||||||
|
let mut y = backward.next().unwrap_or(&0);
|
||||||
|
|
||||||
|
loop {
|
||||||
|
if x >= y {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
let sum = x + y;
|
||||||
|
if sum < n {
|
||||||
|
x = forward.next().unwrap_or(&u64::max_value());
|
||||||
|
} else if sum > n {
|
||||||
|
y = backward.next().unwrap_or(&0);
|
||||||
|
} else {
|
||||||
|
// Sum found!
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+48
-19
@@ -10,16 +10,13 @@ mod day5;
|
|||||||
mod day6;
|
mod day6;
|
||||||
mod day7;
|
mod day7;
|
||||||
mod day8;
|
mod day8;
|
||||||
|
mod day9;
|
||||||
|
|
||||||
fn main() {
|
const MAX_DAY: u8 = 9;
|
||||||
|
const BENCHMARK_AMOUNT: u32 = 100;
|
||||||
|
|
||||||
let now = Instant::now();
|
fn solve(day: u8) {
|
||||||
|
match day {
|
||||||
let args: Vec<String> = std::env::args().collect();
|
|
||||||
|
|
||||||
let day_arg_idx = args.iter().position(|a| a == "-d");
|
|
||||||
if day_arg_idx.is_some() {
|
|
||||||
match args[day_arg_idx.unwrap() + 1].parse::<u8>().unwrap() {
|
|
||||||
1 => day1::solve(),
|
1 => day1::solve(),
|
||||||
2 => day2::solve(),
|
2 => day2::solve(),
|
||||||
3 => day3::solve(),
|
3 => day3::solve(),
|
||||||
@@ -28,19 +25,51 @@ fn main() {
|
|||||||
6 => day6::solve(),
|
6 => day6::solve(),
|
||||||
7 => day7::solve(),
|
7 => day7::solve(),
|
||||||
8 => day8::solve(),
|
8 => day8::solve(),
|
||||||
|
9 => day9::solve(),
|
||||||
_ => println!("This day is not yet implemented")
|
_ => println!("This day is not yet implemented")
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
// Solve all days:
|
|
||||||
day1::solve();
|
fn main() {
|
||||||
day2::solve();
|
|
||||||
day3::solve();
|
|
||||||
day4::solve();
|
let args: Vec<String> = std::env::args().collect();
|
||||||
day5::solve();
|
|
||||||
day6::solve();
|
let day_arg_idx = args.iter().position(|a| a == "-d");
|
||||||
day7::solve();
|
let single_day = day_arg_idx.is_some();
|
||||||
day8::solve();
|
let day = if single_day { args[day_arg_idx.unwrap() + 1].parse::<u8>().unwrap() } else { 0 };
|
||||||
|
|
||||||
|
let benchmark = args.contains(&String::from("--bench")) || args.contains(&String::from("-b"));
|
||||||
|
|
||||||
|
let mut bench_results: Vec<u128> = Vec::new();
|
||||||
|
|
||||||
|
// This is essentially the warmup for the benchmark:
|
||||||
|
run_once(single_day, day, &mut bench_results);
|
||||||
|
|
||||||
|
if benchmark {
|
||||||
|
for _ in 0..BENCHMARK_AMOUNT {
|
||||||
|
run_once(single_day, day, &mut bench_results);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
println!("Execution took {} μs", now.elapsed().as_micros());
|
let avg_runtime: u128 = bench_results.iter().sum::<u128>() / (bench_results.len() as u128);
|
||||||
|
|
||||||
|
println!("Execution took {} μs {}", avg_runtime, if benchmark { "on average" } else { "" });
|
||||||
|
}
|
||||||
|
|
||||||
|
fn run_once(single_day: bool, day: u8, bench_results: &mut Vec<u128>) {
|
||||||
|
|
||||||
|
let now = Instant::now();
|
||||||
|
if single_day {
|
||||||
|
solve(day);
|
||||||
|
} else {
|
||||||
|
solve_all();
|
||||||
|
}
|
||||||
|
bench_results.push(now.elapsed().as_micros());
|
||||||
|
}
|
||||||
|
|
||||||
|
fn solve_all() {
|
||||||
|
for day in 1..(MAX_DAY + 1) {
|
||||||
|
solve(day);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user