day 7
This commit is contained in:
1 parent
9dafa9952f
commit
5a03581041
4 files changed
+1152
No files matched your search
Generated
+16
@@ -0,0 +1,16 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "day7"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"once_cell",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "once_cell"
|
||||
version = "1.19.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
|
||||
@@ -0,0 +1,9 @@
|
||||
[package]
|
||||
name = "day7"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
once_cell = "1.19.0"
|
||||
+1000
@@ -0,0 +1,1000 @@
|
||||
55AAA 534
|
||||
QKK3Q 408
|
||||
Q4Q4Q 607
|
||||
5J5K5 793
|
||||
J6396 841
|
||||
AK359 693
|
||||
4A6A2 453
|
||||
A6632 967
|
||||
Q2Q22 196
|
||||
AK265 673
|
||||
K868K 514
|
||||
5T9K5 848
|
||||
5QQQJ 223
|
||||
22JA2 337
|
||||
383J3 879
|
||||
J3232 416
|
||||
6983J 351
|
||||
QK6K9 229
|
||||
98J25 852
|
||||
7733A 964
|
||||
89AK4 637
|
||||
K5A82 720
|
||||
A4664 230
|
||||
K4994 634
|
||||
T5888 314
|
||||
QQJAA 364
|
||||
77K78 296
|
||||
93322 159
|
||||
78777 462
|
||||
649J8 434
|
||||
692K7 709
|
||||
AJAAA 457
|
||||
838Q9 893
|
||||
37K77 853
|
||||
8KKKK 473
|
||||
4555A 880
|
||||
2252J 645
|
||||
T2332 326
|
||||
TT4JT 75
|
||||
44847 949
|
||||
23733 470
|
||||
24766 419
|
||||
2QKQK 302
|
||||
65A3Q 39
|
||||
7Q87J 297
|
||||
6Q7KJ 519
|
||||
TTTTK 989
|
||||
T5936 463
|
||||
6J922 686
|
||||
2TT5J 553
|
||||
8975A 353
|
||||
787Q5 172
|
||||
K7J77 840
|
||||
Q4QKJ 493
|
||||
A5K83 723
|
||||
4JQ53 97
|
||||
KJKQK 582
|
||||
KK4KJ 17
|
||||
8768J 120
|
||||
4444Q 905
|
||||
76776 842
|
||||
KK9A2 439
|
||||
J8QJ8 474
|
||||
8QQ88 718
|
||||
QQJ55 139
|
||||
AK8TA 546
|
||||
Q945T 478
|
||||
Q8K49 369
|
||||
43332 30
|
||||
694T7 940
|
||||
K4KKK 494
|
||||
84843 182
|
||||
AAAQA 646
|
||||
737JA 614
|
||||
85QQ4 104
|
||||
6JAA2 333
|
||||
83388 565
|
||||
T7999 826
|
||||
TQ96Q 947
|
||||
83333 784
|
||||
T7T8K 689
|
||||
4KQT6 491
|
||||
TT3TT 624
|
||||
88J66 836
|
||||
7AA77 13
|
||||
2QJJ4 996
|
||||
79777 273
|
||||
3333K 930
|
||||
2QQQ2 151
|
||||
K2K4J 6
|
||||
8338A 911
|
||||
8QTTT 891
|
||||
3QQ9Q 721
|
||||
555Q4 522
|
||||
6A79A 26
|
||||
9J347 270
|
||||
8QJT6 483
|
||||
QQTTJ 91
|
||||
6Q396 617
|
||||
58J36 244
|
||||
4K55K 630
|
||||
666J3 301
|
||||
5K555 204
|
||||
TJKTT 595
|
||||
66692 584
|
||||
66233 874
|
||||
A88AT 994
|
||||
45854 960
|
||||
77767 888
|
||||
TQTT3 854
|
||||
AJQ6A 259
|
||||
9JAAA 149
|
||||
JKKQQ 479
|
||||
55598 576
|
||||
A28A2 925
|
||||
828KK 41
|
||||
Q3J93 203
|
||||
AT3TT 827
|
||||
335KK 93
|
||||
5K56K 778
|
||||
4747Q 894
|
||||
A77K7 295
|
||||
2K634 154
|
||||
KJT5Q 480
|
||||
49854 445
|
||||
T5TJT 342
|
||||
763AQ 981
|
||||
J6643 305
|
||||
J76T3 787
|
||||
TJ7KJ 241
|
||||
7J332 344
|
||||
QA3T3 265
|
||||
25222 366
|
||||
53552 877
|
||||
8Q696 111
|
||||
Q9567 174
|
||||
774J9 184
|
||||
79977 126
|
||||
94T64 377
|
||||
J8888 783
|
||||
33267 367
|
||||
T5J53 768
|
||||
246A7 141
|
||||
37QTQ 88
|
||||
J99T2 64
|
||||
4J792 220
|
||||
963A2 517
|
||||
43348 101
|
||||
Q8K57 832
|
||||
44744 197
|
||||
4J2J2 262
|
||||
K5KKT 892
|
||||
A53AA 348
|
||||
QT9T9 79
|
||||
54644 242
|
||||
39369 503
|
||||
78J87 427
|
||||
J99A4 663
|
||||
KKK6K 569
|
||||
8JK88 896
|
||||
84648 42
|
||||
AJKAQ 687
|
||||
5A94Q 636
|
||||
33T33 495
|
||||
9Q2T2 716
|
||||
A749J 760
|
||||
4J8K4 65
|
||||
99499 209
|
||||
42JA4 137
|
||||
2K62K 228
|
||||
59Q28 482
|
||||
5AA73 188
|
||||
QTTTA 293
|
||||
66642 953
|
||||
2KJ2K 564
|
||||
AAJAJ 532
|
||||
A5453 51
|
||||
44K24 797
|
||||
22992 320
|
||||
66555 800
|
||||
947JT 9
|
||||
A8265 313
|
||||
TA76Q 598
|
||||
8473A 810
|
||||
99Q95 845
|
||||
8Q85K 805
|
||||
J3596 157
|
||||
JKK66 59
|
||||
TA888 794
|
||||
JA7A7 712
|
||||
9J59K 513
|
||||
Q3Q33 600
|
||||
3J448 310
|
||||
QA44T 666
|
||||
32K39 983
|
||||
T2JQ8 133
|
||||
43345 939
|
||||
85Q45 436
|
||||
8J898 424
|
||||
4QQJQ 49
|
||||
8KA9J 961
|
||||
55J59 507
|
||||
4724Q 504
|
||||
4KQQQ 12
|
||||
33999 256
|
||||
QA8A7 100
|
||||
AAAAK 508
|
||||
59A55 368
|
||||
66J56 144
|
||||
487AA 736
|
||||
KQTKK 186
|
||||
7QQQT 56
|
||||
7K246 767
|
||||
QQQQ9 487
|
||||
QQ3J2 398
|
||||
J7K7A 798
|
||||
22228 995
|
||||
64Q73 688
|
||||
J2TJ4 901
|
||||
3636T 675
|
||||
55444 21
|
||||
76QQA 4
|
||||
A2232 922
|
||||
2AJ54 672
|
||||
JA37A 746
|
||||
55T53 520
|
||||
QKK3J 906
|
||||
K8466 119
|
||||
AK653 758
|
||||
J3533 710
|
||||
AAAAT 391
|
||||
25KKJ 379
|
||||
58T39 107
|
||||
9T9T9 871
|
||||
AT7AQ 47
|
||||
2QQ24 661
|
||||
96226 168
|
||||
65555 975
|
||||
88K88 443
|
||||
848J6 160
|
||||
QQAQA 189
|
||||
7J36K 875
|
||||
34484 770
|
||||
T4J38 383
|
||||
8942A 33
|
||||
AQA4Q 338
|
||||
9697T 977
|
||||
K3K7J 887
|
||||
T498T 472
|
||||
KKQ2K 243
|
||||
KTJAK 872
|
||||
57655 109
|
||||
QJQQQ 886
|
||||
57777 345
|
||||
66JQ6 623
|
||||
5992J 660
|
||||
TAAKK 191
|
||||
27228 837
|
||||
79A26 604
|
||||
T8JTT 245
|
||||
T55TT 862
|
||||
4558K 526
|
||||
37777 627
|
||||
QQ3QQ 458
|
||||
KA9AT 124
|
||||
88488 449
|
||||
4Q26K 796
|
||||
98984 393
|
||||
Q63J5 791
|
||||
8QKQQ 644
|
||||
A7AAK 371
|
||||
666JJ 924
|
||||
A7974 913
|
||||
TJA66 199
|
||||
AA6KK 931
|
||||
77454 727
|
||||
9J697 954
|
||||
444AA 294
|
||||
AKA58 142
|
||||
3K3J5 396
|
||||
8T6KJ 456
|
||||
53735 706
|
||||
66444 817
|
||||
3J784 698
|
||||
9A7AJ 570
|
||||
J64AA 251
|
||||
K5932 819
|
||||
958K2 485
|
||||
979J9 775
|
||||
77333 52
|
||||
J622J 247
|
||||
TTJ6T 324
|
||||
6TT73 788
|
||||
77477 2
|
||||
5K55K 652
|
||||
KJ525 115
|
||||
7AT56 594
|
||||
66766 869
|
||||
K9A2Q 602
|
||||
34434 180
|
||||
77K72 388
|
||||
3K8T5 253
|
||||
4Q3KK 711
|
||||
66665 632
|
||||
T2T66 690
|
||||
KKK74 616
|
||||
747J4 702
|
||||
796QA 497
|
||||
829K9 464
|
||||
K78K5 628
|
||||
34334 657
|
||||
2T453 161
|
||||
8369Q 912
|
||||
99J99 57
|
||||
774K7 19
|
||||
4A94A 897
|
||||
2QAJ2 389
|
||||
27K78 62
|
||||
7KKKK 530
|
||||
KJKKK 319
|
||||
T76Q9 999
|
||||
2T998 361
|
||||
A9Q29 855
|
||||
J44J4 681
|
||||
T57J9 813
|
||||
9459T 631
|
||||
5J7J5 500
|
||||
9JT68 164
|
||||
6222J 78
|
||||
22662 166
|
||||
J347A 280
|
||||
5TQA8 418
|
||||
AK7Q4 45
|
||||
36666 618
|
||||
AK545 32
|
||||
KA9KQ 236
|
||||
5T55K 649
|
||||
Q8A4J 68
|
||||
K4K44 117
|
||||
T64TT 193
|
||||
46666 308
|
||||
K79KK 501
|
||||
777A8 615
|
||||
52TT2 306
|
||||
KKJKJ 486
|
||||
Q3932 102
|
||||
6J972 738
|
||||
55888 974
|
||||
4J476 838
|
||||
6JQ4Q 140
|
||||
TTT4Q 303
|
||||
KKK88 701
|
||||
35QKJ 69
|
||||
5J325 902
|
||||
2J555 190
|
||||
55J55 572
|
||||
Q373T 311
|
||||
KAJAA 422
|
||||
Q3QQ7 328
|
||||
463TQ 263
|
||||
JQ663 839
|
||||
88858 428
|
||||
94853 475
|
||||
56Q55 821
|
||||
7777J 561
|
||||
Q66J7 726
|
||||
9A7A5 700
|
||||
98868 907
|
||||
A2AK2 288
|
||||
647A3 968
|
||||
K2988 903
|
||||
AA2JT 890
|
||||
A8T69 926
|
||||
T44TJ 252
|
||||
2A2AA 354
|
||||
KK4J9 136
|
||||
9889Q 620
|
||||
63J33 860
|
||||
222TT 667
|
||||
22T72 238
|
||||
5T88T 691
|
||||
233TT 250
|
||||
96649 210
|
||||
58474 765
|
||||
99939 668
|
||||
AT3AJ 959
|
||||
999Q9 824
|
||||
9KJ99 550
|
||||
Q5J5K 551
|
||||
TAT6T 235
|
||||
7J77J 406
|
||||
68586 318
|
||||
AQ475 169
|
||||
J424T 705
|
||||
AKK97 541
|
||||
AKT75 412
|
||||
AAQJA 432
|
||||
K77K7 834
|
||||
6Q594 535
|
||||
J2772 699
|
||||
85Q78 477
|
||||
KT986 552
|
||||
6Q84J 980
|
||||
77T48 868
|
||||
5AQAT 756
|
||||
666T6 282
|
||||
97899 46
|
||||
QQ794 792
|
||||
Q33KT 173
|
||||
57JK4 948
|
||||
4K664 433
|
||||
Q36AT 195
|
||||
82282 287
|
||||
44724 724
|
||||
K8637 547
|
||||
7377J 70
|
||||
79J7Q 3
|
||||
TJ6KK 549
|
||||
7766K 512
|
||||
J44K7 53
|
||||
5Q425 211
|
||||
AA5JA 878
|
||||
27A89 781
|
||||
99988 225
|
||||
Q72T8 734
|
||||
Q454Q 105
|
||||
A8AT7 601
|
||||
JTTTT 260
|
||||
Q9J78 407
|
||||
3K999 782
|
||||
AKK6K 917
|
||||
K3535 86
|
||||
22JT5 307
|
||||
55855 332
|
||||
6KA98 187
|
||||
T2JQQ 215
|
||||
4T39K 942
|
||||
QQ8QQ 329
|
||||
494J4 357
|
||||
46T27 829
|
||||
3548T 316
|
||||
555K6 224
|
||||
K9AQQ 833
|
||||
TAT5T 340
|
||||
77888 671
|
||||
22673 899
|
||||
K3237 43
|
||||
T9TT9 129
|
||||
5555T 613
|
||||
98596 529
|
||||
99669 921
|
||||
4443A 825
|
||||
AQA54 806
|
||||
TTA5A 163
|
||||
K99KK 946
|
||||
93997 779
|
||||
49544 945
|
||||
QT383 350
|
||||
67667 694
|
||||
K7997 207
|
||||
TAT52 695
|
||||
53563 346
|
||||
387QK 461
|
||||
J4T56 339
|
||||
TTTT7 330
|
||||
59QA7 401
|
||||
T5T55 861
|
||||
27774 246
|
||||
TJ99T 505
|
||||
2ATAT 679
|
||||
64A43 420
|
||||
28J5J 993
|
||||
5J5K9 741
|
||||
5QQQQ 446
|
||||
994Q9 73
|
||||
Q33A6 866
|
||||
A337A 965
|
||||
55A88 669
|
||||
A82AQ 885
|
||||
QJ6J8 331
|
||||
AA72A 923
|
||||
K574Q 934
|
||||
33TKT 347
|
||||
Q6J73 384
|
||||
63782 970
|
||||
TT8TT 471
|
||||
2445K 984
|
||||
5QT35 202
|
||||
89888 662
|
||||
KA39A 611
|
||||
3985A 548
|
||||
TTJ6K 234
|
||||
A67J3 125
|
||||
9Q743 540
|
||||
5QAAQ 179
|
||||
K3K32 95
|
||||
83J5K 465
|
||||
782TA 883
|
||||
52QJ2 380
|
||||
TTT6T 285
|
||||
K8469 198
|
||||
QT7AT 409
|
||||
99995 143
|
||||
J5856 586
|
||||
T9KJT 175
|
||||
6Q42Q 966
|
||||
JAQJ8 764
|
||||
9939J 625
|
||||
55858 258
|
||||
QQ828 356
|
||||
JQ2Q2 18
|
||||
27722 81
|
||||
K3Q46 740
|
||||
46767 704
|
||||
J8KKK 284
|
||||
999K9 555
|
||||
J3J44 233
|
||||
K99K9 286
|
||||
55994 910
|
||||
394JT 847
|
||||
22472 8
|
||||
95K5Q 882
|
||||
4T454 859
|
||||
Q3333 521
|
||||
49495 717
|
||||
J5JJ5 112
|
||||
3K827 421
|
||||
8Q799 876
|
||||
6T7T9 735
|
||||
TT8T2 402
|
||||
J77A7 774
|
||||
K68QK 40
|
||||
KJK76 11
|
||||
7AT7A 312
|
||||
9T999 90
|
||||
TKAQ5 928
|
||||
AQ27K 481
|
||||
K3477 545
|
||||
QJTAA 375
|
||||
44884 937
|
||||
8822K 466
|
||||
23333 38
|
||||
4KKK4 773
|
||||
46AJ4 130
|
||||
2AA3A 648
|
||||
7K7A4 523
|
||||
TT3A4 381
|
||||
TT444 16
|
||||
K8889 909
|
||||
64875 404
|
||||
84929 932
|
||||
78485 566
|
||||
32584 809
|
||||
83348 664
|
||||
9AAAK 237
|
||||
7AA7K 626
|
||||
JK2T2 559
|
||||
96A7K 255
|
||||
75A65 745
|
||||
68266 656
|
||||
KJK54 269
|
||||
6QQ4Q 358
|
||||
787TT 276
|
||||
6AK66 484
|
||||
22262 278
|
||||
58J88 828
|
||||
QQAAA 987
|
||||
2K67J 146
|
||||
7QQQA 459
|
||||
27453 415
|
||||
K842J 920
|
||||
5873T 914
|
||||
JJJJJ 155
|
||||
67JJ2 499
|
||||
6T98T 927
|
||||
T9KKK 82
|
||||
43956 823
|
||||
4464T 743
|
||||
98999 150
|
||||
95922 606
|
||||
K7KK7 183
|
||||
937JA 728
|
||||
6688T 816
|
||||
Q3594 392
|
||||
6JJTT 766
|
||||
99JQ4 603
|
||||
444QQ 642
|
||||
KJ6KK 85
|
||||
QQK3J 15
|
||||
A4KJ6 870
|
||||
76KA5 5
|
||||
66J66 957
|
||||
36663 153
|
||||
55A5A 851
|
||||
QQ5T7 176
|
||||
A7999 873
|
||||
428JQ 973
|
||||
T7777 83
|
||||
8A452 991
|
||||
2699J 54
|
||||
97959 218
|
||||
9559Q 221
|
||||
25794 200
|
||||
57555 560
|
||||
A5Q5A 413
|
||||
3JJ82 212
|
||||
TK783 399
|
||||
T83TT 621
|
||||
55955 807
|
||||
5TT8K 410
|
||||
4A7J5 633
|
||||
3K6TQ 373
|
||||
3TJTT 956
|
||||
KT5KT 639
|
||||
AT2TT 803
|
||||
K28A6 574
|
||||
87598 67
|
||||
4KQQ9 327
|
||||
8852Q 580
|
||||
9K58K 732
|
||||
8A8AA 437
|
||||
A468K 647
|
||||
44743 943
|
||||
44423 605
|
||||
22863 343
|
||||
666J2 213
|
||||
99922 692
|
||||
728KK 84
|
||||
23J77 752
|
||||
7J49Q 426
|
||||
62Q2Q 469
|
||||
TKQ4J 205
|
||||
J5AA5 802
|
||||
A7359 447
|
||||
88666 864
|
||||
KQT7T 976
|
||||
A22A2 29
|
||||
Q77KK 643
|
||||
87888 750
|
||||
T6663 992
|
||||
J2767 106
|
||||
22J2J 579
|
||||
66A66 588
|
||||
TT9TJ 14
|
||||
33A26 941
|
||||
492A9 219
|
||||
9JT44 323
|
||||
QJK3J 670
|
||||
74747 733
|
||||
634K8 352
|
||||
8J68A 325
|
||||
55Q5Q 808
|
||||
44644 118
|
||||
3KK33 322
|
||||
28QAJ 22
|
||||
T226K 780
|
||||
Q33A5 298
|
||||
98928 998
|
||||
7772J 544
|
||||
8A688 979
|
||||
J8J88 811
|
||||
JKK3K 334
|
||||
AKA4J 448
|
||||
6686K 568
|
||||
3K752 35
|
||||
7JT77 986
|
||||
938J5 511
|
||||
262A2 89
|
||||
AQ966 192
|
||||
83338 858
|
||||
6J7QQ 889
|
||||
3KK77 655
|
||||
9524K 589
|
||||
3TJT3 349
|
||||
42Q67 577
|
||||
K249K 537
|
||||
857Q3 997
|
||||
4QJQ4 37
|
||||
Q999J 96
|
||||
66262 321
|
||||
A6A6A 460
|
||||
5A539 908
|
||||
34999 592
|
||||
22T9J 452
|
||||
27A2A 1000
|
||||
4A2AJ 638
|
||||
QQ76Q 730
|
||||
A6A33 867
|
||||
247QA 678
|
||||
72277 309
|
||||
QTQQT 23
|
||||
3K636 36
|
||||
99733 222
|
||||
677J4 581
|
||||
J8JJJ 835
|
||||
KT6A4 116
|
||||
3JT33 275
|
||||
2Q978 596
|
||||
66969 685
|
||||
K8A88 441
|
||||
3TKJ7 985
|
||||
78AA7 134
|
||||
KKTKT 158
|
||||
575J7 58
|
||||
J2362 578
|
||||
9JKK7 749
|
||||
282A2 916
|
||||
4J424 390
|
||||
J7QQ7 865
|
||||
4A4T4 206
|
||||
55JKK 254
|
||||
33399 754
|
||||
99QQQ 776
|
||||
5Q76K 571
|
||||
37T2A 201
|
||||
6QT96 355
|
||||
QQT4Q 267
|
||||
86A34 653
|
||||
76T59 92
|
||||
9QQ9K 430
|
||||
55995 516
|
||||
22322 599
|
||||
2876K 822
|
||||
77233 831
|
||||
4T2T2 360
|
||||
T2777 988
|
||||
2222A 110
|
||||
KK6K6 385
|
||||
44J4K 622
|
||||
A93A3 162
|
||||
64A75 658
|
||||
5JK88 846
|
||||
357A2 747
|
||||
KK69J 814
|
||||
K4A3J 7
|
||||
A4444 395
|
||||
33535 759
|
||||
T8Q5Q 363
|
||||
J48K3 216
|
||||
82JK5 900
|
||||
9A833 538
|
||||
TAA6T 587
|
||||
Q453T 194
|
||||
5T5T9 629
|
||||
QQQAQ 299
|
||||
86T3J 820
|
||||
32465 659
|
||||
373Q8 729
|
||||
A8AJA 227
|
||||
777J9 25
|
||||
9QJ9J 1
|
||||
8888A 898
|
||||
5898Q 543
|
||||
98852 558
|
||||
AA9AA 289
|
||||
TTT5T 147
|
||||
5AATA 476
|
||||
Q3A85 488
|
||||
6Q86Q 919
|
||||
63655 387
|
||||
24668 274
|
||||
7JT42 856
|
||||
9993Q 751
|
||||
AAAA3 266
|
||||
666T5 71
|
||||
95777 972
|
||||
86Q22 239
|
||||
2AAAQ 226
|
||||
33JJ3 515
|
||||
AAA52 527
|
||||
33J33 113
|
||||
99A9A 771
|
||||
62922 442
|
||||
37KQ4 772
|
||||
66AAQ 641
|
||||
T2KTT 703
|
||||
KAK3K 610
|
||||
TQTJT 411
|
||||
AAKAK 121
|
||||
KQ97T 496
|
||||
4QQ5K 597
|
||||
55QJ5 431
|
||||
44J44 257
|
||||
69956 933
|
||||
6T2A5 99
|
||||
J59J5 382
|
||||
6K8J6 264
|
||||
JKKTK 573
|
||||
87447 714
|
||||
TAT2Q 94
|
||||
477JK 138
|
||||
QTTTT 696
|
||||
89988 978
|
||||
23J7Q 556
|
||||
668K8 378
|
||||
J5444 372
|
||||
96997 533
|
||||
K887K 283
|
||||
KAKKK 170
|
||||
22TQ2 165
|
||||
7J2JT 400
|
||||
KJ495 790
|
||||
777QQ 951
|
||||
68J33 722
|
||||
57577 963
|
||||
35873 128
|
||||
22JJA 952
|
||||
8338J 77
|
||||
78585 414
|
||||
QQAJ4 131
|
||||
8848T 969
|
||||
AKAJT 50
|
||||
J8Q88 468
|
||||
7TTT7 763
|
||||
67267 122
|
||||
A22AT 27
|
||||
5AQT4 31
|
||||
28468 506
|
||||
AAAA5 958
|
||||
55666 10
|
||||
55252 66
|
||||
272J2 114
|
||||
J2AAJ 849
|
||||
7A8JJ 248
|
||||
J5557 277
|
||||
5954J 762
|
||||
6K3KK 98
|
||||
98788 108
|
||||
66423 72
|
||||
67636 489
|
||||
5A555 403
|
||||
T9524 261
|
||||
7T284 268
|
||||
55554 677
|
||||
JTAT8 61
|
||||
K922K 936
|
||||
A6T6T 272
|
||||
74K2J 815
|
||||
9KQ45 181
|
||||
KK4T2 397
|
||||
8JQ8Q 528
|
||||
53Q73 748
|
||||
6Q5Q5 683
|
||||
K66TT 950
|
||||
AJJ8A 341
|
||||
8A228 524
|
||||
AQ4A3 804
|
||||
9JJ99 904
|
||||
35976 608
|
||||
33AAJ 609
|
||||
55J53 335
|
||||
59988 208
|
||||
222K2 799
|
||||
36J9Q 498
|
||||
K4654 177
|
||||
25522 531
|
||||
T737A 881
|
||||
55K45 20
|
||||
A3383 24
|
||||
99595 593
|
||||
J8K2K 455
|
||||
4KQ9K 635
|
||||
34A33 231
|
||||
53TQ7 362
|
||||
K9KKK 640
|
||||
7TTT4 249
|
||||
Q49J2 127
|
||||
T538J 590
|
||||
J2288 684
|
||||
92993 674
|
||||
2A6AA 214
|
||||
QKKKQ 785
|
||||
87QTJ 370
|
||||
TKT3K 737
|
||||
JQQ75 502
|
||||
K9AAJ 850
|
||||
258K8 857
|
||||
9K2JQ 76
|
||||
JJJ6Q 217
|
||||
QJ399 557
|
||||
K2JTT 135
|
||||
J2922 148
|
||||
QQQ7Q 317
|
||||
92T9T 405
|
||||
Q274T 962
|
||||
44J9J 509
|
||||
QTQQQ 232
|
||||
37737 757
|
||||
88J83 938
|
||||
AJJ89 279
|
||||
855K3 744
|
||||
82928 28
|
||||
7427K 185
|
||||
JTQK8 884
|
||||
33363 585
|
||||
67662 971
|
||||
22272 359
|
||||
44442 450
|
||||
TQ746 650
|
||||
58553 715
|
||||
J5558 830
|
||||
25625 315
|
||||
67KK8 583
|
||||
6K768 304
|
||||
Q9KQ2 417
|
||||
8A485 429
|
||||
K5KKK 518
|
||||
J3JJ3 510
|
||||
45554 525
|
||||
TT777 145
|
||||
KK666 490
|
||||
9AK97 492
|
||||
Q76A4 818
|
||||
88382 34
|
||||
39545 423
|
||||
3JT4K 376
|
||||
2Q722 789
|
||||
K9KAK 87
|
||||
84847 152
|
||||
A33J8 440
|
||||
5K8J4 132
|
||||
54585 680
|
||||
K55KT 281
|
||||
95T8J 990
|
||||
66QQQ 44
|
||||
6T734 707
|
||||
57JJ7 454
|
||||
Q6QK7 425
|
||||
Q4852 575
|
||||
63266 731
|
||||
2KA9A 739
|
||||
96924 394
|
||||
J3T2Q 654
|
||||
T44TT 451
|
||||
9992J 542
|
||||
46664 178
|
||||
42442 944
|
||||
QQQ6J 755
|
||||
JTQT2 271
|
||||
59575 682
|
||||
Q86T8 708
|
||||
82888 801
|
||||
9595J 300
|
||||
38832 48
|
||||
3332J 935
|
||||
Q7Q57 769
|
||||
K85T9 812
|
||||
3A994 665
|
||||
44544 725
|
||||
7K878 591
|
||||
84K24 336
|
||||
K885K 982
|
||||
3TA4A 742
|
||||
4T7T7 915
|
||||
75JAT 895
|
||||
453AQ 786
|
||||
QQKQQ 713
|
||||
JJ6K4 386
|
||||
7J766 290
|
||||
2T735 435
|
||||
227K7 753
|
||||
656Q6 240
|
||||
QQQQ2 929
|
||||
K566T 467
|
||||
KAT6J 563
|
||||
A2888 156
|
||||
222J2 374
|
||||
6Q6Q4 567
|
||||
47474 438
|
||||
95939 171
|
||||
3434J 843
|
||||
8AJ75 863
|
||||
9K62A 536
|
||||
6699J 123
|
||||
97979 651
|
||||
43966 844
|
||||
833Q4 697
|
||||
3A4TQ 795
|
||||
ATTK4 719
|
||||
7A992 777
|
||||
J938K 562
|
||||
JQJQQ 539
|
||||
J22AA 554
|
||||
KKKTK 619
|
||||
2T873 292
|
||||
QKKAK 103
|
||||
77A77 612
|
||||
T7Q4K 55
|
||||
A46AA 60
|
||||
72778 365
|
||||
QQQ45 74
|
||||
6K372 676
|
||||
3J522 80
|
||||
AK5AJ 291
|
||||
329K6 444
|
||||
55Q55 918
|
||||
64545 167
|
||||
82288 63
|
||||
3993J 761
|
||||
622J8 955
|
||||
@@ -0,0 +1,127 @@
|
||||
use once_cell::sync::Lazy;
|
||||
use std::fs::read_to_string;
|
||||
|
||||
static CARD_STRENGTH: Lazy<[u8; 128]> = Lazy::new(|| core::array::from_fn(
|
||||
|i| {
|
||||
match i as u8 as char {
|
||||
'2'..='9' => i as u8 - '2' as u8,
|
||||
'T' => 8 as u8,
|
||||
'J' => 9 as u8,
|
||||
'Q' => 10 as u8,
|
||||
'K' => 11 as u8,
|
||||
'A' => 12 as u8,
|
||||
_ => 0 as u8
|
||||
}
|
||||
}));
|
||||
|
||||
static CARD_STRENGTH_ALT: Lazy<[u8; 128]> = Lazy::new(|| core::array::from_fn(
|
||||
|i| {
|
||||
match i as u8 as char {
|
||||
'J' => 0 as u8,
|
||||
'2'..='9' => i as u8 - '1' as u8,
|
||||
'T' => 9 as u8,
|
||||
'Q' => 10 as u8,
|
||||
'K' => 11 as u8,
|
||||
'A' => 12 as u8,
|
||||
_ => 0 as u8
|
||||
}
|
||||
}));
|
||||
|
||||
fn get_hand_strength(str: &str) -> i32 {
|
||||
// Amount of combinations is much smaller than i32, so we can just order them all
|
||||
let mut iter = str.bytes().map(|c| CARD_STRENGTH[c as usize]);
|
||||
let hand: [u8; 5] = [iter.next().unwrap(), iter.next().unwrap(), iter.next().unwrap(), iter.next().unwrap(), iter.next().unwrap()];
|
||||
// strength of cards from first to last, constructed like a base13 number, used to break ties
|
||||
let mut cards_strengths: i32 = 0;
|
||||
let mut occurences: [u8; 13] = [0; 13];
|
||||
for c in hand {
|
||||
occurences[c as usize] += 1;
|
||||
cards_strengths *= 13;
|
||||
cards_strengths += c as i32;
|
||||
}
|
||||
let mut occurences_reduced = occurences.iter().cloned().filter(|&c| c > 0 as u8).collect::<Vec<_>>();
|
||||
// sorting the numbers of occurences descending, the biggest group is always the most important
|
||||
occurences_reduced.sort_by(|a, b| b.cmp(a));
|
||||
let mut combination_strength: i32 = match occurences_reduced[0] {
|
||||
5 => 6,
|
||||
4 => 5,
|
||||
3 => 3,
|
||||
2 => 1,
|
||||
_ => 0
|
||||
};
|
||||
if occurences_reduced.len() > 1 && occurences_reduced[1] == 2 {
|
||||
combination_strength += 1;
|
||||
}
|
||||
cards_strengths + combination_strength * 371293 // 13^5, max value of cards_strengths + 1
|
||||
}
|
||||
|
||||
fn get_hand_strength_alt(str: &str) -> i32 {
|
||||
// Amount of combinations is much smaller than i32, so we can just order them all
|
||||
let mut iter = str.bytes().map(|c| CARD_STRENGTH_ALT[c as usize]);
|
||||
let hand: [u8; 5] = [iter.next().unwrap(), iter.next().unwrap(), iter.next().unwrap(), iter.next().unwrap(), iter.next().unwrap()];
|
||||
// strength of cards from first to last, constructed like a base13 number, used to break ties
|
||||
let mut cards_strengths: i32 = 0;
|
||||
let mut occurences: [u8; 13] = [0; 13];
|
||||
for c in hand {
|
||||
occurences[c as usize] += 1;
|
||||
cards_strengths *= 13;
|
||||
cards_strengths += c as i32;
|
||||
}
|
||||
// taking jokers out of the picture, they will be added after getting the sorted groups
|
||||
let jokers = occurences[0];
|
||||
occurences[0] = 0;
|
||||
let mut occurences_reduced = occurences.iter().cloned().filter(|&c| c > 0 as u8).collect::<Vec<_>>();
|
||||
// sorting the numbers of occurences descending, the biggest group is always the most important
|
||||
occurences_reduced.sort_by(|a, b| b.cmp(a));
|
||||
if occurences_reduced.is_empty() {
|
||||
// if all cards are jokers
|
||||
occurences_reduced.push(jokers);
|
||||
} else {
|
||||
// adding jokers to the biggest group will always get the biggest value increase
|
||||
occurences_reduced[0] += jokers;
|
||||
}
|
||||
let mut combination_strength: i32 = match occurences_reduced[0] {
|
||||
5 => 6,
|
||||
4 => 5,
|
||||
3 => 3,
|
||||
2 => 1,
|
||||
_ => 0
|
||||
};
|
||||
if occurences_reduced.len() > 1 && occurences_reduced[1] == 2 {
|
||||
combination_strength += 1;
|
||||
}
|
||||
cards_strengths + combination_strength * 371293 // 13^5, max value of cards_strengths + 1
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let hands = read_to_string("input.txt").unwrap().lines().map(
|
||||
|str| {
|
||||
let mut elems = str.split_whitespace();
|
||||
let hand_text = String::from(elems.next().unwrap());
|
||||
let bid = elems.next().unwrap().parse::<i32>().unwrap();
|
||||
(hand_text, bid)
|
||||
}
|
||||
).collect::<Vec<_>>();
|
||||
let mut hands_task1 = hands.iter().map(
|
||||
|(hand_text, bid)| {
|
||||
(get_hand_strength(hand_text), *bid)
|
||||
}
|
||||
).collect::<Vec<_>>();
|
||||
hands_task1.sort();
|
||||
let winnings1 = hands_task1.iter().enumerate().fold(
|
||||
0, |acc, (order, &(_, bid))| {
|
||||
acc + (order as i32 + 1) * bid
|
||||
});
|
||||
let mut hands_task2 = hands.iter().map(
|
||||
|(hand_text, bid)| {
|
||||
(get_hand_strength_alt(hand_text), hand_text, *bid)
|
||||
}
|
||||
).collect::<Vec<_>>();
|
||||
hands_task2.sort();
|
||||
let winnings2 = hands_task2.iter().enumerate().fold(
|
||||
0, |acc, (order, &(_, _, bid))| {
|
||||
acc + (order as i32 + 1) * bid
|
||||
});
|
||||
println!("Winnings1: {}", winnings1);
|
||||
println!("Winnings2: {}", winnings2);
|
||||
}
|
||||
Reference in new issue
Block a user