summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOrfeas <38209077+0xfea5@users.noreply.github.com>2025-08-24 02:02:12 +0300
committerOrfeas <38209077+0xfea5@users.noreply.github.com>2025-09-01 04:51:34 +0300
commit48a61ce53f605683f40dedf561c92d0b7db03062 (patch)
tree2bff3ba5cc70ccc16e1e2349854218810ea70ba2
parentAdd day initialization script (diff)
downloadaoc24-48a61ce53f605683f40dedf561c92d0b7db03062.tar.gz
aoc24-48a61ce53f605683f40dedf561c92d0b7db03062.zip
day01: done
-rw-r--r--day01/Makefile13
-rw-r--r--day01/input.txt1000
-rw-r--r--day01/solution.cpp51
3 files changed, 1064 insertions, 0 deletions
diff --git a/day01/Makefile b/day01/Makefile
new file mode 100644
index 0000000..c1bc66d
--- /dev/null
+++ b/day01/Makefile
@@ -0,0 +1,13 @@
1CXX := g++
2CXX_FLAGS := -std=c++23
3SOLUTION := solution.cpp
4INPUT := input.txt
5TARGET := solution.out
6
7all: compile run
8
9compile:
10 ${CXX} ${CXX_FLAGS} ${SOLUTION} -o ${TARGET}
11
12run: compile
13 ./${TARGET} < ${INPUT}
diff --git a/day01/input.txt b/day01/input.txt
new file mode 100644
index 0000000..07185fe
--- /dev/null
+++ b/day01/input.txt
@@ -0,0 +1,1000 @@
147078 87818
299261 15906
344723 23473
487598 26876
582172 24873
692690 35957
746104 92718
817300 92112
967643 56714
1081513 83498
1129550 67133
1241437 40271
1350927 30853
1459085 99760
1570043 30853
1660337 32788
1796311 84959
1884634 52702
1952702 63846
2024182 51218
2173443 69884
2272022 58536
2362248 41011
2441418 82128
2592718 37057
2695875 57364
2784233 38993
2849551 99582
2977689 64457
3021344 56714
3145466 41011
3213812 15968
3357869 45306
3478200 77689
3544981 43653
3635500 66963
3727169 56950
3848956 39884
3944999 26876
4087641 65881
4197594 77367
4226029 41783
4356082 48615
4437413 49812
4516310 58965
4636134 33967
4740339 69074
4887392 73592
4985426 41011
5050693 79721
5172999 51667
5237541 99170
5333772 59608
5494796 61699
5590202 55953
5638330 73424
5739478 85890
5876029 81665
5965969 11359
6063748 77256
6145284 67606
6280539 58100
6339367 92755
6481324 71861
6539057 32788
6678121 40271
6766791 59743
6815405 11016
6926614 40271
7074178 92718
7158206 56714
7258390 25035
7359886 15968
7458977 76787
7544549 27027
7643761 39854
7741990 11589
7889748 92718
7937102 72199
8074662 40220
8163702 73406
8268866 31235
8337664 40271
8421120 83642
8537562 84394
8696696 52702
8715695 57691
8877133 21919
8927827 73852
9016989 40271
9124826 63907
9237931 43112
9322793 52702
9487720 55514
9519896 40271
9635602 15968
9784179 64941
9818369 25377
9994694 26917
10059042 63583
10172595 38723
10270765 72595
10317730 85810
10414237 63353
10543121 63327
10671146 20668
10770924 73750
10835978 62758
10971771 30853
11031366 19077
11146799 46080
11217728 84290
11373057 40271
11474265 26876
11520692 70845
11698146 52702
11711555 33496
11823856 26826
11937347 89364
12071336 16570
12152686 95991
12246027 52702
12335514 15202
12483891 10187
12593746 70911
12626934 58536
12711606 15968
12890273 58100
12945589 87216
13034588 85214
13190198 40865
13299412 18291
13373574 92718
13421438 61699
13575457 85579
13664991 59375
13717631 19103
13877182 20233
13978920 28543
14081239 86731
14122547 63907
14251155 32788
14379249 58100
14490671 90991
14585690 78392
14658921 70144
14721070 44410
14862699 72595
14949573 69124
15073725 73849
15188221 94676
15251718 99007
15399760 31236
15495185 94160
15587111 57839
15628467 15202
15742315 76351
15877827 79354
15995219 99760
16038147 30853
16164826 63321
16225471 16587
16310927 81296
16441546 41011
16537315 69111
16699327 38377
16785336 84238
16840804 30853
16953516 30853
17027810 70144
17169577 70694
17225624 38809
17349041 69884
17421503 74953
17573554 57055
17675671 69264
17735839 92687
17862809 49927
17938952 71861
18047433 94883
18183751 84179
18296703 59295
18314937 71861
18488960 47466
18595895 44999
18610816 92718
18753349 58536
18878701 15202
18988121 40271
19034593 68809
19154762 81665
19243571 77689
19355916 40089
19440645 36311
19531607 40497
19681871 58536
19759108 11885
19851170 81665
19992491 50670
20052658 58212
20123221 90728
20266538 78414
20315397 96177
20444490 63907
20574261 61699
20652527 52702
20754092 12090
20885887 44240
20981916 81665
21052917 24491
21163064 19043
21267656 60571
21346500 63907
21423513 83663
21589284 54975
21670144 28556
21799155 41011
21850425 84179
21968018 61813
22063893 32788
22163846 49310
22240331 85906
22337888 52413
22464681 15202
22518619 94298
22629923 95681
22731156 72616
22870630 33220
22946149 29460
23079706 59024
23115202 58100
23238450 55528
23338540 64168
23444172 15202
23583218 29596
23687956 75221
23774674 29596
23832969 27529
23975354 70584
24080869 39769
24178375 79326
24226720 80104
24359064 93076
24417369 26876
24571018 28093
24662410 94862
24734117 13591
24884414 77689
24972343 44999
25063907 66141
25171144 81665
25229415 66425
25388830 11982
25470188 22280
25553282 99760
25618318 63138
25760397 57539
25865195 41822
25924016 13700
26088135 74622
26114071 47193
26214685 98095
26395982 91801
26433811 72723
26529333 88953
26634084 86155
26756453 62127
26810338 90318
26942757 19402
27093976 63907
27176120 83403
27230463 94304
27313958 40271
27484845 99760
27564272 57736
27657418 35445
27777223 56497
27833423 75411
27941030 19106
28082698 15202
28129524 74256
28287764 77689
28386912 10187
28468742 59684
28576640 23589
28631500 17713
28723412 99007
28822908 58536
28956584 96889
29024442 83833
29119446 56714
29259337 72595
29360529 79345
29418771 52637
29569780 50379
29645080 41011
29790135 23400
29825259 15202
29916305 29881
30084260 41011
30190895 72595
30212543 38607
30311665 63907
30496978 81665
30552028 61190
30667233 52702
30720481 81204
30812111 70144
30920206 46595
31043424 69196
31129231 58536
31298098 55798
31360225 51890
31481665 97950
31550519 90597
31610405 75939
31767815 74916
31844903 61313
31957482 93791
32024477 85715
32147814 43158
32230230 15202
32362375 26876
32494004 70796
32575531 11460
32618327 71267
32752363 44947
32886594 44999
32946404 92745
33090532 39065
33164807 30853
33224401 52702
33391341 52563
33484207 62127
33571087 73532
33663113 44999
33743813 74297
33859883 66327
33932173 91360
34018376 64927
34113447 26876
34220860 73532
34390448 22528
34461857 59032
34598601 77689
34648533 95904
34743074 80112
34877210 40271
34930853 77689
35066535 90757
35173022 24042
35240271 58513
35383490 84179
35434711 19907
35593977 90225
35648807 56714
35754844 81665
35832392 26876
35996732 99760
36097627 25611
36160706 72595
36280954 56714
36385719 84179
36472831 16614
36531090 27039
36633058 29333
36763877 29596
36872421 90853
36915747 77367
37040917 32788
37181013 17450
37289899 99199
37330106 71861
37425280 44999
37555196 62277
37670682 33511
37782706 15417
37832623 56714
37971868 95563
38031828 15968
38113986 44897
38242490 77695
38397842 11333
38447535 51124
38592501 58848
38623972 80539
38790629 35766
38899801 13773
38997880 10299
39067699 77976
39144374 68427
39212199 77367
39371056 15202
39476588 44999
39573579 57631
39699007 77689
39781619 53485
39831191 62127
39980056 84625
40064180 23225
40154280 99760
40239351 48787
40333694 72481
40459589 20554
40595067 73532
40691316 40271
40773532 26451
40849527 93539
40946775 80376
41079815 59637
41135690 57057
41278276 95579
41364869 71861
41414150 36760
41536529 69884
41641203 84659
41742188 52872
41859342 26876
41913743 15791
42035869 82919
42156530 50033
42246284 15202
42361154 69884
42435696 86345
42515254 61699
42657134 71533
42770825 21595
42866588 34391
42982940 16813
43013492 15968
43196700 71218
43297141 52702
43361389 38118
43497291 69884
43560721 26377
43651117 83200
43798847 50875
43887646 22249
43962478 14669
44079243 66768
44140877 30705
44285374 99760
44326483 97357
44450799 72595
44531201 63907
44669859 67933
44710162 97886
44865187 73532
44951941 99007
45061601 68668
45188266 71861
45277196 44999
45392169 26447
45435540 30408
45537333 96467
45691358 64059
45725360 25918
45879252 41453
45990858 95320
46029099 89894
46142949 57509
46244235 61265
46376836 30756
46458622 32788
46552544 88998
46683243 61839
46711550 81665
46875353 90674
46918733 49200
47044857 99760
47147917 18551
47246902 94882
47367800 50385
47466456 27826
47554772 35730
47629893 52702
47793137 69884
47878826 81665
47928223 22708
48054686 31988
48169884 31020
48265815 22691
48354404 68691
48433098 61699
48531777 87837
48655080 92718
48752404 17012
48878426 99007
48986123 33334
49038248 21362
49118775 92718
49218300 84179
49368027 26566
49426944 58509
49596983 49850
49616112 73532
49722976 69884
49870019 58536
49999156 56912
50018554 56714
50134219 59289
50275604 46931
50393676 99760
50480075 44664
50561524 71190
50648559 83823
50779042 15968
50810187 63907
50981634 99760
51098757 45694
51195160 32788
51249758 62127
51334595 69729
51479509 75616
51570849 70765
51619823 99007
51711674 63907
51880688 26876
51968689 44999
52099145 30681
52129803 77689
52211195 26876
52339142 78046
52489735 99760
52517954 56702
52635483 24463
52724596 55483
52829573 86792
52940311 69884
53036696 79954
53171770 84179
53248235 40271
53364473 98643
53410835 29037
53587315 40271
53682881 60460
53762963 22798
53826876 15558
53923333 51990
54012241 33180
54177191 81665
54251847 62738
54329391 44999
54467769 59925
54586133 26025
54611156 56714
54778912 42186
54868345 58100
54933464 82105
55066618 63907
55148407 63946
55218442 81320
55388673 52220
55446467 84179
55575390 34795
55639665 26232
55738181 34226
55839508 21595
55999046 41455
56099124 58536
56110567 98228
56260543 71569
56343020 97889
56438858 40271
56529190 80539
56634739 62127
56789621 69560
56830771 58536
56957289 81665
57025790 99007
57175082 40873
57248883 77898
57384768 43568
57437225 52172
57569182 21856
57656054 15202
57788455 11998
57812595 81665
57942875 54145
58073926 44999
58136122 52702
58246708 99007
58329997 15202
58442745 98773
58542375 56714
58675274 20728
58788736 72595
58862127 56145
58926385 20846
59060047 26876
59173700 63508
59299967 56386
59391205 55219
59472084 17536
59511100 30853
59686461 63549
59744630 77689
59885895 51919
59968759 33484
60074502 71645
60119619 25720
60251879 22939
60393529 28809
60495744 44892
60571040 69884
60692283 10187
60769503 52702
60869366 32834
60977924 97954
61029331 17904
61153839 32788
61239040 92718
61377367 73532
61480212 58100
61546701 15968
61681778 64498
61798144 43740
61857572 83339
61958954 63907
62043061 69884
62133284 41119
62252046 98936
62343374 52702
62445680 30069
62558466 63907
62638467 70067
62741669 15479
62897829 40271
62961699 63907
63067033 10670
63185926 72595
63281216 30476
63351978 63846
63479287 81665
63523180 36540
63625437 25410
63739375 39888
63883920 52583
63966350 84179
64071374 52702
64143715 26936
64263974 77367
64323571 69884
64443184 84982
64589441 42511
64681551 44999
64710922 71861
64831029 29596
64960099 25656
65084341 28350
65187757 99007
65223597 15202
65378234 26876
65456131 96770
65552135 97828
65626696 17764
65717491 99007
65886740 60265
65953289 77689
66060718 52171
66157714 87530
66265300 40271
66365053 19684
66497208 29064
66579814 15202
66625364 63442
66747637 39347
66896951 69884
66953474 62127
67046924 69884
67150969 52018
67237489 99007
67348578 62127
67461446 80919
67568586 34617
67649043 73532
67792466 82326
67824713 44999
67963343 55976
68035977 84179
68134245 33537
68251912 56714
68394801 52702
68443170 40215
68592867 77689
68670889 82782
68755715 32788
68858553 53227
68916471 23124
69087308 51281
69121869 75687
69242734 58536
69360655 15202
69485304 77668
69594528 10667
69652573 29966
69767022 91096
69856714 98154
69924181 10943
70072888 40347
70172526 73838
70235075 99760
70318297 77200
70433264 94679
70579398 56714
70696423 61699
70798761 99007
70847893 52463
70923998 29333
71073783 80539
71195656 85562
71239010 70144
71312750 50086
71437688 37813
71534615 99090
71689976 36475
71757208 81294
71877332 63554
71984748 77108
72091236 37247
72195049 38795
72237167 87150
72375938 81744
72413240 60220
72598249 81665
72657711 82510
72748345 50410
72834247 55076
72963735 56714
73049753 72955
73142491 57804
73295228 62498
73349153 69884
73448475 81665
73551080 16072
73699335 26876
73776428 71861
73887840 87762
73990879 63708
74078241 94882
74144228 70144
74214939 81681
74391560 72595
74460633 61699
74587704 14607
74693639 44999
74756105 29596
74832508 73607
74912567 33468
75097216 21595
75150798 92962
75222716 94002
75314778 56597
75485689 26890
75544077 99719
75619295 43088
75795073 89224
75866049 74142
75913636 55544
76014788 46689
76150539 94586
76276711 12338
76368845 99007
76458084 56714
76581373 44999
76685290 52702
76774215 81665
76883877 42928
76972744 24041
77042339 44999
77190903 77689
77295473 77689
77315968 81665
77430119 70771
77567126 62242
77628005 43891
77783542 56246
77855690 61699
77986747 52702
78095312 76423
78171809 30853
78295342 86814
78335018 44999
78466726 88424
78588452 46221
78627429 40593
78755822 74366
78855664 17591
78952298 56714
79046184 12887
79183709 73532
79296569 52521
79394130 77689
79414616 90178
79554685 61908
79646980 56034
79797505 63846
79865102 40271
79927333 54978
80050829 12173
80122972 75288
80282623 52859
80338551 43499
80493146 26876
80575782 44999
80658483 90566
80725714 14324
80893683 12547
80913255 41011
81017050 77689
81199987 69884
81287610 98164
81332788 79689
81488659 72069
81575294 77367
81683641 61674
81778128 15202
81877913 58536
81918091 56438
82044772 38894
82118123 63907
82214757 22903
82386063 10369
82458790 13571
82596646 73532
82617441 37016
82762735 79008
82819676 58536
82953952 21281
83096037 78166
83156324 41924
83291420 92847
83332075 80539
83488097 93787
83564557 77689
83686964 87922
83754705 63907
83839832 87431
83926744 29333
84094719 35503
84115467 75955
84241780 56714
84368740 33686
84478413 28597
84522458 82789
84632380 70070
84758856 66092
84831400 68116
84929596 92821
85074434 36862
85156903 60867
85268537 62762
85373882 52702
85450795 41011
85592978 80539
85615419 63907
85730824 73027
85887167 66219
85930311 23071
86069915 65438
86113875 10846
86225150 58100
86371794 69045
86467187 22217
86588571 99345
86652691 99760
86758484 65806
86855576 15217
86970871 58536
87083674 61363
87121595 43759
87262939 84792
87319915 21720
87487126 59116
87537323 97948
87616743 81665
87776646 30581
87832715 62127
87927800 67124
88050506 13412
88141711 41011
88269510 49308
88364796 44463
88472579 12149
88569190 16493
88654418 23411
88722487 58536
88899378 63907
88912668 69884
89083089 54374
89149382 69884
89297939 18992
89355613 49971
89430391 71962
89599867 86926
89622464 58536
89762800 69400
89860452 30181
89928236 41011
90019971 99007
90197670 69480
90214241 19344
90353561 61699
90462921 99007
90556358 35755
90662754 34787
90758536 99007
90830001 53814
90974539 12679
91064108 42344
91110964 15202
91231620 12133
91363140 29642
91456181 75252
91524997 77689
91683375 30853
91758316 70611
91837598 86581
91953492 55238
92094882 53526
92149886 98524
92234832 40271
92351601 96816
92486836 76006
92598028 49086
92681264 92718
92788107 99760
92892986 22844
92915192 58536
93033858 31074
93147939 51733
93211400 64586
93341733 45362
93472781 74505
93599442 42256
93633819 73532
93742475 78227
93871861 63009
93916910 77689
94066841 55855
94182076 47569
94223970 77297
94350621 30972
94482188 65987
94552027 21595
94665978 41011
94776860 73419
94833128 23741
94956773 78528
95074030 40271
95183925 56714
95219663 10575
95345965 52702
95479913 99007
95524014 73532
95682291 30853
95755050 77689
95817469 77689
95989161 32788
96077583 72595
96163786 77015
96234030 25130
96331825 11803
96458100 29596
96531899 30853
96649755 72595
96727015 71793
96826065 14784
96956821 42394
97032804 26876
97141011 73532
97289019 62241
97367037 12599
97430561 21210
97564503 38086
97699814 92718
97762163 44999
97841339 56714
97948486 24365
98073474 84198
98112943 85353
98253346 76552
98365110 10187
98414424 99714
98577324 44999
98668183 99007
98762112 97792
98891712 78301
98930715 41011
99080210 76343
99148330 99007
99246680 96360
99389265 21171
99478498 67808
99595594 60377
99681820 84843
99717509 85554
99847369 11182
99934359 84179
100045592 15347
diff --git a/day01/solution.cpp b/day01/solution.cpp
new file mode 100644
index 0000000..b19504e
--- /dev/null
+++ b/day01/solution.cpp
@@ -0,0 +1,51 @@
1#include <print>
2#include <vector>
3#include <iostream>
4#include <algorithm>
5#include <ranges>
6#include <map>
7
8void part1(std::vector<int> A, std::vector<int> B) {
9 std::sort(A.begin(), A.end());
10 std::sort(B.begin(), B.end());
11
12 int sum = 0;
13 for (auto [x, y] : std::views::zip(A, B)) {
14 sum += std::abs(x - y);
15 }
16
17 std::println("{}", sum);
18}
19
20void part2(std::vector<int> A, std::vector<int> B) {
21 std::map<int, int> _A, _B;
22
23 for (auto a : A) {
24 _A[a]++;
25 }
26 for (auto b : B) {
27 _B[b]++;
28 }
29
30 int sum = 0;
31 for (auto a : _A) {
32 sum += a.first * a.second * _B[a.first];
33 }
34
35 std::println("{}", sum);
36}
37
38int main() {
39 std::vector<int> A, B;
40
41 int a, b;
42 while (std::cin >> a >> b) {
43 A.push_back(a);
44 B.push_back(b);
45 }
46
47 part1(A, B);
48 part2(A, B);
49
50 return 0;
51}