From 5055786d3db80e45a5c3f128f41866ea78865c45 Mon Sep 17 00:00:00 2001
From: Yigit Sever
Date: Thu, 1 Dec 2022 17:43:04 +0300
Subject: 2022, day1: done

---
 2022/day1/input             | 2244 +++++++++++++++++++++++++++++++++++++++++++
 2022/day1/part1/Cargo.toml  |    9 +
 2022/day1/part1/example     |   14 +
 2022/day1/part1/src/main.rs |   14 +
 2022/day1/part2/Cargo.toml  |    9 +
 2022/day1/part2/example     |   14 +
 2022/day1/part2/src/main.rs |   21 +
 7 files changed, 2325 insertions(+)
 create mode 100644 2022/day1/input
 create mode 100644 2022/day1/part1/Cargo.toml
 create mode 100644 2022/day1/part1/example
 create mode 100644 2022/day1/part1/src/main.rs
 create mode 100644 2022/day1/part2/Cargo.toml
 create mode 100644 2022/day1/part2/example
 create mode 100644 2022/day1/part2/src/main.rs

(limited to '2022')

diff --git a/2022/day1/input b/2022/day1/input
new file mode 100644
index 0000000..7be633e
--- /dev/null
+++ b/2022/day1/input
@@ -0,0 +1,2244 @@
+8890
+13468
+5519
+4939
+
+4580
+3529
+2917
+1329
+4004
+3553
+5457
+1907
+2515
+4055
+4626
+3776
+1982
+2967
+
+10118
+2688
+4629
+3054
+3911
+6680
+6988
+6471
+
+2836
+7494
+7963
+8528
+8732
+1743
+4794
+1685
+1406
+2575
+
+7606
+11935
+4792
+7040
+8684
+1131
+3000
+
+5799
+4398
+3837
+2155
+1889
+5560
+6684
+2045
+1194
+1280
+4009
+6944
+4754
+
+3932
+10114
+9039
+10597
+6889
+5807
+8786
+5376
+
+5666
+8741
+2305
+3914
+4521
+6449
+6590
+5933
+2765
+
+1417
+3584
+3304
+5605
+6249
+3195
+5905
+5308
+3920
+2912
+4028
+2897
+4737
+6224
+
+4498
+6139
+6716
+9309
+6210
+4120
+6244
+9313
+3275
+
+5602
+4336
+5174
+4592
+3676
+6700
+1903
+4623
+5393
+3743
+2397
+5207
+3445
+
+2219
+3393
+4442
+5142
+4466
+6851
+1877
+4005
+4792
+1370
+
+11433
+10337
+11711
+4342
+6693
+2626
+6245
+
+10039
+11192
+7335
+13284
+13507
+
+1989
+5218
+4411
+4440
+3563
+1714
+3617
+3068
+1167
+1222
+3567
+3888
+2634
+2289
+3410
+
+6518
+5391
+12964
+13103
+9070
+9803
+
+22560
+
+4229
+2789
+2219
+1940
+2848
+4053
+5849
+5518
+1088
+6297
+6603
+
+2889
+3452
+4254
+3624
+4293
+1511
+5150
+2890
+5834
+6345
+6399
+1164
+3561
+
+46632
+
+19171
+
+2510
+21303
+15390
+
+54375
+
+22699
+36690
+
+2240
+3329
+3299
+5978
+4641
+3499
+3515
+4915
+4613
+2785
+4757
+5394
+2339
+2574
+5073
+
+1321
+3132
+5429
+5664
+4451
+1397
+3284
+6077
+4117
+4818
+4430
+3163
+2432
+3894
+
+6726
+2851
+9582
+
+32549
+
+17153
+18102
+11467
+20051
+
+7167
+4819
+4283
+1900
+1524
+3228
+1712
+7107
+7453
+1137
+1927
+3876
+
+14437
+7952
+
+5253
+7062
+1107
+5023
+2353
+7335
+2819
+4925
+2439
+5186
+3602
+2016
+
+4129
+26383
+
+3665
+5169
+6365
+4399
+3518
+2176
+6185
+1150
+1490
+3818
+6223
+2104
+4006
+1142
+
+1138
+11986
+5920
+6371
+7888
+8197
+10859
+
+4338
+4292
+1523
+1044
+2498
+2514
+3160
+5049
+2113
+5867
+1916
+5458
+4686
+2012
+5455
+
+15587
+
+4040
+4077
+5272
+4914
+6755
+6297
+2240
+1925
+2940
+2346
+5688
+5501
+
+1476
+4270
+1252
+4783
+3661
+5353
+4596
+5400
+5916
+1685
+3307
+3915
+5624
+1371
+2001
+
+42703
+
+1250
+2902
+6414
+6487
+6368
+1200
+2759
+3307
+5551
+1216
+4097
+3174
+3758
+2470
+
+4997
+1199
+4598
+2443
+2931
+4287
+1606
+5156
+4750
+4117
+2487
+3399
+4283
+4991
+4441
+
+1789
+
+4379
+10889
+6020
+1102
+5043
+10061
+11276
+
+7586
+13962
+
+10039
+2029
+
+2150
+2431
+3646
+4601
+5105
+4254
+5469
+5844
+6856
+4529
+3557
+3043
+4944
+
+6797
+1605
+6624
+4966
+1452
+2260
+6281
+3273
+5754
+6576
+6326
+6391
+4892
+
+9772
+16686
+1032
+14594
+
+2978
+4118
+2292
+6107
+7428
+2954
+3516
+2464
+4726
+5438
+3292
+2812
+
+6953
+7372
+5775
+7550
+8449
+7315
+2872
+2442
+
+2581
+7301
+1256
+3467
+2348
+6254
+5231
+3225
+8275
+
+3065
+4110
+5259
+8646
+4515
+7431
+7086
+3650
+2445
+
+5714
+4659
+6401
+1647
+7071
+1302
+8529
+1570
+7288
+
+49901
+
+6687
+1879
+4661
+6048
+6920
+5048
+1537
+3786
+1634
+3274
+4277
+2712
+2647
+
+5597
+4194
+4058
+5329
+2484
+3420
+2607
+2953
+2580
+1093
+2609
+2299
+4805
+3426
+4101
+
+2833
+6833
+1455
+9758
+2307
+3045
+10558
+
+3380
+4149
+8715
+5262
+7564
+9620
+3331
+6581
+7674
+
+3389
+2996
+1250
+9915
+1731
+7254
+3784
+10198
+
+4210
+6612
+6253
+6874
+5858
+4349
+4845
+1119
+4695
+4496
+6276
+4234
+6679
+
+16077
+6437
+18269
+14173
+
+19739
+5489
+3345
+5798
+
+4150
+5984
+5293
+5741
+3166
+5279
+5244
+5215
+5010
+3367
+1828
+4310
+4335
+3973
+
+2144
+12157
+9069
+1615
+1826
+7195
+
+12924
+6962
+11433
+3150
+7863
+7387
+
+3113
+3604
+7814
+10587
+3098
+10913
+
+4513
+9048
+10027
+3587
+7837
+3906
+2299
+
+4370
+6152
+5473
+5866
+5358
+4265
+4487
+6664
+2347
+6075
+1481
+4074
+1962
+
+7409
+7332
+11378
+7740
+8090
+3036
+1310
+
+8351
+6202
+1420
+9306
+7410
+11169
+9201
+
+6951
+2037
+8682
+5075
+9709
+4678
+8347
+
+10537
+13081
+5447
+8707
+11933
+
+10454
+2543
+10319
+8133
+2072
+9299
+1929
+
+7770
+4904
+8452
+8625
+7675
+4126
+1015
+4921
+8517
+2709
+
+10877
+7192
+9475
+4555
+5625
+5261
+5756
+
+6150
+9451
+11426
+11464
+6334
+10003
+8686
+
+1959
+1711
+5018
+4235
+4920
+4257
+2511
+2572
+1347
+1871
+2102
+4203
+6334
+
+12058
+8690
+1875
+7697
+12351
+7669
+
+32887
+
+31015
+
+6024
+2966
+3311
+7248
+6280
+4727
+6071
+6771
+1599
+1958
+7649
+
+9066
+13179
+1857
+12410
+1404
+11676
+
+6262
+7283
+4418
+1207
+7099
+2798
+6994
+5267
+7810
+6521
+
+7144
+3828
+5528
+4676
+2311
+6429
+7064
+6601
+2846
+1611
+3188
+
+4151
+6232
+5706
+7003
+3470
+8349
+8189
+4137
+
+3055
+6091
+2008
+5977
+1909
+1192
+2149
+2983
+1219
+1025
+1537
+2635
+5461
+5570
+5620
+
+25514
+
+19363
+16402
+
+6908
+4670
+3407
+4541
+5027
+5640
+1008
+5737
+2336
+2994
+3908
+
+2788
+5117
+18397
+5362
+
+2285
+1597
+1556
+1505
+1317
+1136
+3387
+4936
+6798
+7103
+5537
+
+7045
+4354
+6071
+6734
+11077
+5863
+7177
+
+5625
+3990
+6473
+3191
+1023
+3673
+2520
+5998
+2726
+5421
+1907
+7129
+
+1302
+1703
+6858
+1329
+1933
+3438
+4088
+7955
+
+8593
+
+6686
+3483
+5829
+2240
+6810
+2964
+5400
+3826
+4753
+5525
+5395
+5127
+6010
+
+9254
+37116
+
+1487
+18037
+9573
+14918
+
+6570
+3119
+1689
+3785
+4436
+6237
+4394
+4042
+1242
+7143
+1621
+5211
+
+3851
+1651
+2177
+5699
+4866
+5048
+5174
+1271
+3971
+2695
+1051
+1670
+1372
+3959
+1264
+
+8039
+1858
+9989
+8870
+7618
+5662
+
+1059
+8999
+2214
+5310
+8052
+5807
+1963
+4282
+8489
+
+1444
+2736
+3879
+2437
+3539
+3657
+2351
+4513
+4299
+4166
+5665
+4164
+3622
+1907
+
+3638
+4328
+4562
+3285
+3200
+5909
+2542
+5197
+5104
+3570
+4323
+
+1631
+2406
+2788
+1838
+4639
+2469
+6718
+3731
+2375
+4325
+3952
+1012
+1076
+
+10733
+9085
+5074
+9984
+9990
+10107
+9274
+10464
+
+13249
+10020
+4881
+12806
+11865
+
+9852
+6248
+4916
+7066
+5297
+5475
+6530
+10364
+
+2415
+5519
+2200
+3556
+5815
+2426
+6180
+2142
+6627
+7369
+6353
+4170
+
+5507
+15832
+15699
+10635
+7997
+
+1742
+4641
+4628
+4867
+8860
+1133
+3575
+7128
+8774
+
+2808
+6117
+3760
+1327
+1224
+4959
+5456
+2801
+5944
+1961
+1194
+3734
+2937
+3793
+1888
+
+21943
+35720
+
+6563
+5000
+1710
+4021
+3273
+6155
+3198
+3661
+6309
+2331
+1631
+5646
+5734
+
+9646
+3457
+8620
+5965
+3440
+6433
+1753
+9062
+8301
+
+9192
+3284
+9181
+8566
+3759
+10184
+8911
+6998
+
+19491
+10283
+13574
+12306
+
+2916
+9083
+13398
+13239
+4749
+12853
+
+7223
+3154
+2911
+7004
+3110
+3584
+6619
+5960
+8429
+
+5878
+4929
+4709
+4932
+3023
+1011
+2193
+4264
+5282
+1657
+4360
+6109
+5031
+3785
+5017
+
+16065
+2923
+11281
+
+7340
+3319
+5766
+1660
+7947
+7012
+2739
+1395
+8273
+
+3887
+5538
+4771
+3770
+1504
+2681
+4066
+3406
+3487
+3098
+3611
+6234
+3449
+
+12281
+11291
+11367
+10405
+4223
+
+17411
+8453
+
+36173
+
+3431
+3627
+4047
+2512
+6628
+1229
+4812
+3961
+2389
+4747
+1799
+4291
+
+2176
+7287
+6468
+3056
+9632
+1027
+3251
+1517
+1853
+
+4727
+2417
+4544
+5949
+4289
+2237
+2861
+4284
+6912
+2843
+5773
+4423
+
+3093
+6501
+1259
+4975
+4357
+2940
+2435
+2939
+1772
+3876
+5008
+2909
+5641
+5710
+
+4559
+6522
+5781
+1343
+2062
+2392
+1852
+5135
+7668
+7240
+3028
+
+11607
+9525
+7332
+11307
+
+4941
+5277
+2311
+5738
+3029
+2709
+5448
+1724
+2982
+1082
+1515
+1854
+4762
+4514
+2015
+
+51097
+
+2814
+5593
+6576
+10591
+4809
+4469
+3790
+8186
+
+7656
+10163
+19430
+
+1928
+5626
+3418
+6785
+2781
+3549
+2884
+6656
+6210
+4950
+3598
+2669
+5185
+
+8768
+5221
+7404
+9630
+3371
+9450
+1837
+3100
+4494
+
+3987
+3179
+2415
+2074
+1172
+3192
+5874
+5869
+4404
+5842
+1987
+2526
+4094
+
+5792
+6056
+1689
+5643
+4068
+2259
+1461
+1764
+3453
+2344
+6118
+5844
+2014
+1184
+
+13505
+8242
+1358
+3817
+12030
+11105
+
+7333
+9427
+10385
+3458
+6340
+10804
+
+3152
+1364
+3371
+6000
+3032
+3326
+4046
+1890
+4321
+3986
+3309
+4021
+1683
+2198
+2003
+
+2592
+8354
+13452
+12440
+7966
+
+1593
+1143
+6246
+4105
+6164
+6425
+3904
+1143
+5966
+3100
+5215
+4256
+2090
+3413
+
+4382
+6229
+2368
+1780
+5658
+1452
+6359
+1802
+3800
+6433
+3866
+3038
+4699
+4137
+
+5395
+2426
+5621
+9156
+6250
+9008
+2966
+3226
+6709
+
+5387
+7267
+6067
+6468
+5833
+5241
+7204
+1419
+6037
+5938
+
+2390
+4300
+4787
+3656
+5976
+1879
+3964
+3314
+3076
+5158
+5612
+2846
+5231
+
+2205
+3652
+5211
+1711
+2113
+5988
+1310
+5333
+2253
+2897
+5234
+3809
+3640
+2995
+2197
+
+6695
+5930
+6118
+5463
+3750
+2440
+7006
+4073
+5663
+1369
+2721
+1961
+
+5270
+4851
+5199
+1976
+4128
+5527
+2998
+1567
+6398
+4163
+1484
+6077
+3035
+3860
+
+6698
+3081
+6805
+
+13122
+4106
+6919
+6595
+
+1608
+7971
+10279
+7856
+3503
+
+7405
+6658
+3512
+3913
+6137
+2617
+2776
+8255
+7034
+
+8368
+5163
+6566
+5481
+4059
+10560
+
+5801
+5394
+2081
+2927
+1775
+1635
+1180
+5834
+7652
+2365
+6525
+
+7192
+13806
+12580
+6935
+3136
+7820
+
+2371
+7237
+5197
+1561
+2418
+1742
+5540
+7836
+1613
+4012
+
+45767
+
+6825
+6014
+7571
+3393
+2050
+8230
+4178
+5378
+4878
+5446
+
+1412
+2156
+4877
+5604
+3149
+7585
+7922
+6811
+6971
+4493
+
+12948
+32336
+
+2512
+13073
+12030
+12851
+8951
+
+3070
+10259
+2650
+6091
+5889
+4857
+
+5483
+6813
+4208
+4999
+3708
+1955
+8588
+5416
+6235
+7920
+
+2521
+7180
+7558
+
+8285
+2208
+6058
+2839
+9653
+8078
+5862
+5711
+4847
+
+3792
+1778
+3755
+13541
+12325
+9599
+
+7431
+2814
+3828
+2468
+5499
+6822
+5190
+7279
+7939
+8488
+
+5469
+3086
+8098
+12450
+
+3182
+4307
+4150
+2802
+3857
+5331
+1045
+1111
+3983
+2606
+1077
+
+3219
+2931
+4166
+2250
+5225
+1704
+3895
+6286
+1394
+5564
+1498
+3343
+5912
+2884
+
+3874
+5309
+2941
+2109
+5322
+2994
+3922
+7538
+4666
+6223
+4754
+
+4409
+6975
+8829
+4301
+1730
+2092
+2385
+1288
+9627
+
+8849
+7371
+3259
+8823
+8963
+3901
+7003
+2250
+7492
+
+7619
+16991
+7511
+5747
+
+6361
+2401
+6509
+3429
+1276
+5120
+1852
+1706
+2373
+6117
+1967
+4655
+6193
+
+3186
+10336
+12548
+7692
+1422
+7148
+
+8898
+15230
+7468
+2349
+7214
+
+18114
+7557
+10634
+
+6755
+1045
+7326
+6511
+1691
+4966
+7367
+3305
+7083
+3105
+4262
+
+6806
+8767
+6339
+4159
+11619
+8959
+10729
+
+9070
+9027
+8532
+
+2493
+1949
+5519
+
+4637
+5893
+6617
+2710
+4712
+3514
+2828
+5131
+4756
+4772
+2488
+2540
+6593
+
+4500
+9306
+3847
+8792
+4766
+10598
+5259
+1837
+
+7936
+7125
+5091
+
+4087
+6428
+3093
+5529
+2092
+5734
+1532
+1615
+5175
+4149
+6050
+2863
+
+10505
+11702
+13870
+6381
+
+12380
+6172
+16863
+9492
+
+2406
+7906
+1139
+6866
+3963
+8280
+3315
+1645
+7885
+8315
+
+2744
+10964
+9192
+6889
+11554
+4587
+5537
+
+27485
+2819
+
+67997
+
+6372
+1910
+7440
+9638
+5161
+9354
+1063
+7999
+2712
+
+6375
+6398
+2185
+11875
+1458
+11978
+9621
+
+7326
+6319
+4988
+5326
+7844
+3876
+7311
+1920
+2865
+7959
+6890
+
+5086
+3457
+3398
+6534
+5661
+1592
+4249
+1477
+3174
+3134
+6130
+2097
+5922
+
+1854
+7848
+10289
+9261
+9692
+4814
+7798
+2634
+
+13448
+10236
+11977
+4645
+12188
+11118
+
+1681
+2162
+7349
+3198
+5725
+1151
+4940
+3481
+5896
+7245
+7424
+5630
+
+3626
+3856
+4655
+1412
+2466
+5810
+4395
+1762
+4465
+3614
+3439
+6441
+4400
+
+5037
+2450
+1870
+2191
+2145
+9754
+4259
+5762
+
+9373
+3564
+7177
+1445
+8672
+4098
+6468
+1394
+
+1675
+6754
+1996
+5894
+6449
+4644
+5642
+1338
+1087
+4989
+2467
+1192
+6368
+
+34156
+12437
+
+4394
+5648
+7691
+5598
+5720
+6414
+10089
+2116
+
+9460
+2078
+7811
+13011
+5597
+1628
+
+3772
+1201
+1174
+5884
+3720
+1120
+3830
+5809
+6269
+2548
+3212
+1924
+3951
+5178
+
+1543
+7155
+5204
+7480
+9747
+
+4029
+10517
+6776
+6978
+3517
+5746
+7683
+5939
+
+5484
+1669
+1250
+3036
+3822
+5246
+1648
+5676
+1591
+1624
+3525
+4862
+2834
+5814
+4006
+
+9610
+10230
+1473
+8541
+2163
+4706
+6919
+10514
+
+46165
+
+4618
+4867
+3750
+4578
+5498
+3468
+2663
+3003
+2777
+4434
+7386
+
+18475
+5479
+15616
+
+4810
+6199
+5905
+7014
+3903
+2404
+6955
+1290
+6328
+4729
+1567
+2070
+
+1426
+6652
+7274
+3535
+1873
+8830
+6465
+3091
+
+11667
+1824
+1749
+
+6031
+1589
+6764
+5294
+2658
+7540
+2285
+5290
+3052
+4809
+
+9275
+3219
+9205
+9367
+6695
+1620
+1418
+9589
+6985
+
+4961
+1893
+4204
+4158
+2488
+6562
+6862
+7443
+5180
+6382
+5930
+2819
+
+9225
+17113
+2562
+11634
+
+9490
+5720
+2413
+13607
+12761
+4473
+
+10788
+18449
+9511
+
+11498
+3288
+9304
+4951
+10878
+
+13888
+23233
+18690
+
+5112
+9811
+9336
+4030
+11021
+3585
+1534
+
+6026
+5618
+3065
+2909
+8887
+8052
+3524
+7783
+5793
+
+3573
+5391
+1887
+6295
+3311
+8235
+3985
+2222
+2594
+
+2807
+3623
+2622
+6466
+2272
+2181
+5550
+4568
+1172
+2579
+1020
+5542
+2653
+1080
+
+4874
+10296
+5421
+
+3743
+5053
+5510
+1401
+4173
+7968
+5999
+6482
+7019
+7916
+3752
+
+8718
+7969
+6072
+3223
+5924
+2642
+8274
+1985
+3342
+2036
+
+1706
+8655
+3521
+7502
+7955
+
+1915
+5083
+1668
+11457
+2011
+9998
+9885
+
+10592
+25078
+17582
+
+2596
+2198
+8811
+7464
+5711
+7197
+8744
+5382
+6179
+3769
+
+3713
+6012
+7951
+10750
+5580
+3426
+11019
+
+5536
+7943
+5163
+7703
+14144
+
+3169
+5475
+2367
+3666
+6042
+4279
+1699
+3129
+3294
+1813
+6465
+3591
+3332
+2155
+
+1305
+9537
+9805
+2172
+8665
+8386
+7718
+10709
+
+4645
+6242
+8462
+6619
+3165
+7797
+5664
+5058
+1339
+3749
+
+3365
+5018
+3278
+3403
+4138
+4521
+1797
+3791
+1401
+3748
+6039
+1513
+2696
diff --git a/2022/day1/part1/Cargo.toml b/2022/day1/part1/Cargo.toml
new file mode 100644
index 0000000..f14fe90
--- /dev/null
+++ b/2022/day1/part1/Cargo.toml
@@ -0,0 +1,9 @@
+[package]
+name = "part1"
+version = "0.1.0"
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+itertools = "0.10.5"
diff --git a/2022/day1/part1/example b/2022/day1/part1/example
new file mode 100644
index 0000000..2094f91
--- /dev/null
+++ b/2022/day1/part1/example
@@ -0,0 +1,14 @@
+1000
+2000
+3000
+
+4000
+
+5000
+6000
+
+7000
+8000
+9000
+
+10000
diff --git a/2022/day1/part1/src/main.rs b/2022/day1/part1/src/main.rs
new file mode 100644
index 0000000..637b4e3
--- /dev/null
+++ b/2022/day1/part1/src/main.rs
@@ -0,0 +1,14 @@
+use itertools::Itertools;
+
+fn main() {
+    let input: String = include_str!("../../input").to_string();
+    let mut calories: Vec<usize> = Vec::new();
+
+    for (key, group) in &input.lines().group_by(|line| *line != "") {
+        if key {
+            calories.push(group.into_iter().map(|i| i.parse::<usize>().unwrap()).sum());
+        }
+    }
+
+    println!("{}", calories.iter().max().unwrap());
+}
diff --git a/2022/day1/part2/Cargo.toml b/2022/day1/part2/Cargo.toml
new file mode 100644
index 0000000..69fa504
--- /dev/null
+++ b/2022/day1/part2/Cargo.toml
@@ -0,0 +1,9 @@
+[package]
+name = "part2"
+version = "0.1.0"
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+itertools = "0.10.5"
diff --git a/2022/day1/part2/example b/2022/day1/part2/example
new file mode 100644
index 0000000..2094f91
--- /dev/null
+++ b/2022/day1/part2/example
@@ -0,0 +1,14 @@
+1000
+2000
+3000
+
+4000
+
+5000
+6000
+
+7000
+8000
+9000
+
+10000
diff --git a/2022/day1/part2/src/main.rs b/2022/day1/part2/src/main.rs
new file mode 100644
index 0000000..2a65d1a
--- /dev/null
+++ b/2022/day1/part2/src/main.rs
@@ -0,0 +1,21 @@
+use itertools::Itertools;
+
+fn main() {
+    let input: String = include_str!("../../input").to_string();
+    let mut calories: Vec<usize> = Vec::new();
+
+    for (key, group) in &input.lines().group_by(|line| *line != "") {
+        if key {
+            calories.push(group.into_iter().map(|i| i.parse::<usize>().unwrap()).sum());
+        }
+    }
+
+    println!(
+        "{}",
+        calories
+            .iter()
+            .sorted_by(|a, b| Ord::cmp(b, a))
+            .take(3)
+            .sum::<usize>()
+    );
+}
-- 
cgit v1.2.3-70-g09d2