1diff --git a/BENCH b/BENCH 2index 7dc31f359e5a958c9b558b7c30bbf8fc8fcf5498..e3ad98bbb9d3efb765d038e8bf6e4cbc60405519 100644 3--- a/BENCH 4+++ b/BENCH 5@@ -1,39 +1,83 @@ 6+Zig: 0.15.2 7+ 8 RELEASE FAST 9-2.4M zig-out/bin/aoc2024 10+2.4M zig-out/bin/aoc2025 11 12 benchmark runs total time time/run (avg ± σ) (min ... max) p75 p99 p995 13 ----------------------------------------------------------------------------------------------------------------------------- 14-Dia 1 parte 1 40215 1.836s 45.654us ± 1.099us (44.904us ... 76.393us) 45.546us 50.274us 50.845us 15-Dia 1 parte 2 43858 2.054s 46.837us ± 2.256us (44.463us ... 94.917us) 49.753us 53.009us 53.731us 16-Dia 2 parte 1 95 1.986s 20.913ms ± 112.456us (20.775ms ... 21.528ms) 20.923ms 21.528ms 21.528ms 17-Dia 2 parte 2 27 2.007s 74.339ms ± 631.926us (73.075ms ... 76.82ms) 74.295ms 76.82ms 76.82ms 18-Dia 3 parte 1 100000 187.034ms 1.87us ± 157ns (1.843us ... 7.534us) 1.864us 1.884us 2.324us 19-Dia 3 parte 2 31077 2.016s 64.892us ± 3.846us (57.537us ... 122.619us) 65.032us 79.088us 81.772us 20-Dia 4 parte 1 100000 542.089ms 5.42us ± 351ns (5.27us ... 45.405us) 5.401us 6.702us 8.175us 21-Dia 4 parte 2 434 2.009s 4.629ms ± 95.303us (4.489ms ... 6.045ms) 4.649ms 4.788ms 5.128ms 22-Dia 5 parte 1 52505 2.003s 38.158us ± 2.211us (37.099us ... 70.281us) 37.791us 45.685us 52.708us 23+Dia 1 parte 1 39930 1.936s 48.489us ± 2.339us (44.543us ... 99.355us) 49.633us 53.09us 54.291us 24+Dia 1 parte 2 43968 1.983s 45.117us ± 987ns (44.593us ... 75.631us) 44.974us 49.593us 50.324us 25+Dia 2 parte 1 103 1.987s 19.293ms ± 357.003us (19.069ms ... 22.658ms) 19.285ms 20.229ms 22.658ms 26+Dia 2 parte 2 30 1.999s 66.654ms ± 351.695us (66.28ms ... 67.743ms) 66.644ms 67.743ms 67.743ms 27+Dia 3 parte 1 100000 167.504ms 1.675us ± 157ns (1.643us ... 8.346us) 1.673us 2.024us 2.093us 28+Dia 3 parte 2 29429 2.002s 68.033us ± 3.378us (66.374us ... 121.316us) 67.326us 80.07us 83.245us 29+Dia 4 parte 1 100000 536.372ms 5.363us ± 291ns (5.229us ... 28.162us) 5.35us 6.362us 8.106us 30+Dia 4 parte 2 414 2.011s 4.858ms ± 107.909us (4.729ms ... 6.158ms) 4.883ms 5.078ms 5.44ms 31+Dia 5 parte 1 52654 2.001s 38.014us ± 2.956us (36.638us ... 84.909us) 37.62us 47.248us 56.315us 32 Dia 5 parte 1 [MEMORY] 128B ± 0B (128B ... 128B) 128B 128B 128B 33-Dia 5 parte 2 87876 2.01s 22.881us ± 3.791us (21.54us ... 111.949us) 22.172us 30.557us 33.703us 34+Dia 5 parte 2 83866 1.983s 23.649us ± 5.512us (22.221us ... 145.041us) 23.053us 31.419us 34.565us 35 Dia 5 parte 2 [MEMORY] 256B ± 0B (256B ... 256B) 256B 256B 256B 36+Dia 6 parte 1 48837 1.986s 40.682us ± 886ns (39.704us ... 70.612us) 40.746us 44.714us 45.365us 37+Dia 6 parte 2 73561 2.177s 29.596us ± 2.21us (26.46us ... 246.451us) 30.497us 35.316us 37.741us 38+ 39+ 40+RELEASE SAFE 41+2.6M zig-out/bin/aoc2025 42+ 43+benchmark runs total time time/run (avg ± σ) (min ... max) p75 p99 p995 44+----------------------------------------------------------------------------------------------------------------------------- 45+Dia 1 parte 1 27573 2.13s 77.269us ± 4.151us (69.66us ... 238.526us) 78.086us 92.313us 94.807us 46+Dia 1 parte 2 3185 2.136s 670.652us ± 37.759us (617.715us ... 914.469us) 698.695us 781.31us 804.373us 47+Dia 2 parte 1 74 1.933s 26.123ms ± 108.534us (25.906ms ... 26.341ms) 26.22ms 26.341ms 26.341ms 48+Dia 2 parte 2 20 1.838s 91.932ms ± 4.529ms (88.636ms ... 99.29ms) 98.872ms 99.29ms 99.29ms 49+Dia 3 parte 1 43325 1.806s 41.686us ± 1.648us (40.906us ... 75.942us) 41.528us 47.218us 48.912us 50+Dia 3 parte 2 25603 2.15s 83.985us ± 5.192us (75.541us ... 147.576us) 84.699us 116.447us 116.558us 51+Dia 4 parte 1 6288 1.981s 315.118us ± 3.36us (308.336us ... 348.742us) 317.193us 324.657us 325.969us 52+Dia 4 parte 2 337 1.984s 5.888ms ± 144.821us (5.795ms ... 6.709ms) 5.882ms 6.682ms 6.689ms 53+Dia 5 parte 1 14052 2.219s 157.972us ± 8.196us (137.998us ... 220.863us) 161.02us 186.198us 194.053us 54+Dia 5 parte 2 83082 2.188s 26.342us ± 3.392us (24.276us ... 83.176us) 25.869us 34.715us 38.451us 55+Dia 6 parte 1 44184 2.171s 49.144us ± 2.659us (44.082us ... 305.04us) 49.343us 57.868us 60.283us 56+Dia 6 parte 2 35427 1.947s 54.958us ± 3.466us (50.054us ... 106.479us) 56.676us 65.873us 67.997us 57 58 59 RELEASE SMALL 60-116K zig-out/bin/aoc2024 61+136K zig-out/bin/aoc2025 62 63 benchmark runs total time time/run (avg ± σ) (min ... max) p75 p99 p995 64 ----------------------------------------------------------------------------------------------------------------------------- 65-Dia 1 parte 1 29977 1.999s 66.697us ± 1.11us (65.633us ... 97.102us) 66.885us 71.394us 71.915us 66-Dia 1 parte 2 29850 2.134s 71.503us ± 3.903us (65.423us ... 113.212us) 73.057us 85.229us 88.946us 67-Dia 2 parte 1 33 1.914s 58.013ms ± 2.834ms (55.947ms ... 63.138ms) 61.104ms 63.138ms 63.138ms 68-Dia 2 parte 2 17 1.954s 114.972ms ± 674.784us (113.864ms ... 116.07ms) 115.499ms 116.07ms 116.07ms 69-Dia 3 parte 1 53371 1.857s 34.812us ± 1.992us (33.332us ... 64.391us) 36.438us 41.718us 43.09us 70-Dia 3 parte 2 29439 1.984s 67.401us ± 2.331us (65.793us ... 92.513us) 67.186us 75.121us 76.382us 71-Dia 4 parte 1 10396 2.037s 196.023us ± 11.778us (172.763us ... 301.785us) 199.163us 225.131us 227.986us 72-Dia 4 parte 2 441 2.084s 4.727ms ± 267.787us (4.125ms ... 6.215ms) 4.826ms 5.747ms 6.173ms 73-Dia 5 parte 1 39224 2.183s 55.67us ± 4.385us (49.393us ... 130.885us) 54.972us 76.864us 81.753us 74+Dia 1 parte 1 29752 1.972s 66.282us ± 1.06us (64.921us ... 91.311us) 66.474us 70.682us 71.373us 75+Dia 1 parte 2 30067 1.994s 66.339us ± 1.223us (64.992us ... 96.36us) 66.545us 71.383us 72.496us 76+Dia 2 parte 1 35 1.999s 57.141ms ± 2.444ms (56.019ms ... 65.978ms) 56.555ms 65.978ms 65.978ms 77+Dia 2 parte 2 17 1.949s 114.657ms ± 742.671us (113.724ms ... 115.756ms) 115.321ms 115.756ms 115.756ms 78+Dia 3 parte 1 50865 2.008s 39.495us ± 1.309us (38.863us ... 71.844us) 39.444us 46.947us 46.958us 79+Dia 3 parte 2 26308 1.995s 75.853us ± 2.157us (74.86us ... 105.477us) 75.481us 88.055us 88.094us 80+Dia 4 parte 1 8425 1.995s 236.824us ± 2.548us (234.087us ... 270.776us) 237.965us 244.857us 246.391us 81+Dia 4 parte 2 314 2.103s 6.699ms ± 29.229us (6.646ms ... 6.926ms) 6.702ms 6.857ms 6.892ms 82+Dia 5 parte 1 38446 1.913s 49.759us ± 2.545us (48.059us ... 102.332us) 49.363us 60.844us 61.194us 83 Dia 5 parte 1 [MEMORY] 128B ± 0B (128B ... 128B) 128B 128B 128B 84-Dia 5 parte 2 66790 1.815s 27.18us ± 3.205us (25.828us ... 100.097us) 26.63us 35.026us 38.742us 85+Dia 5 parte 2 70888 2.026s 28.583us ± 3.058us (26.69us ... 92.824us) 28.022us 36.127us 40.055us 86 Dia 5 parte 2 [MEMORY] 256B ± 0B (256B ... 256B) 256B 256B 256B 87+Dia 6 parte 1 15526 1.994s 128.475us ± 1.698us (126.998us ... 158.917us) 128.841us 134.121us 135.604us 88+Dia 6 parte 2 18185 1.998s 109.899us ± 1.743us (107.721us ... 151.583us) 110.216us 115.426us 117.099us 89+ 90+ 91+DEBUG 92+9.2M zig-out/bin/aoc2025 93+ 94+benchmark runs total time time/run (avg ± σ) (min ... max) p75 p99 p995 95+----------------------------------------------------------------------------------------------------------------------------- 96+Dia 1 parte 1 863 1.83s 2.12ms ± 91.626us (2.047ms ... 2.312ms) 2.147ms 2.305ms 2.306ms 97+Dia 1 parte 2 229 1.996s 8.717ms ± 35.291us (8.661ms ... 8.847ms) 8.747ms 8.807ms 8.807ms 98+Dia 2 parte 1 2 1.425s 712.909ms ± 2.908ms (710.852ms ... 714.966ms) 714.966ms 714.966ms 714.966ms 99+Dia 2 parte 2 1 1.303s 1.303s ± 0ns (1.303s ... 1.303s) 1.303s 1.303s 1.303s 100+Dia 3 parte 1 3482 2.166s 622.342us ± 33.283us (565.947us ... 942.401us) 637.291us 732.339us 756.894us 101+Dia 3 parte 2 2668 1.968s 737.851us ± 5.875us (729.252us ... 803.041us) 740.865us 758.157us 761.073us 102+Dia 4 parte 1 51 1.97s 38.63ms ± 195.218us (38.386ms ... 39.012ms) 38.819ms 39.012ms 39.012ms 103+Dia 4 parte 2 1 1.086s 1.086s ± 0ns (1.086s ... 1.086s) 1.086s 1.086s 1.086s 104+Dia 5 parte 1 625 1.998s 3.197ms ± 12.171us (3.175ms ... 3.255ms) 3.205ms 3.226ms 3.229ms 105+Dia 5 parte 2 3235 2.184s 675.37us ± 39.366us (610.611us ... 862.742us) 691.092us 802.66us 820.463us 106+Dia 6 parte 1 1068 2.153s 2.016ms ± 80.434us (1.808ms ... 2.485ms) 2.036ms 2.281ms 2.323ms 107+Dia 6 parte 2 1024 1.989s 1.943ms ± 137.981us (1.774ms ... 2.578ms) 1.991ms 2.276ms 2.297ms 108 109 CPU INFO 110 Architecture: x86_64 111@@ -51,34 +95,5 @@ Core(s) per socket: 8 112 Socket(s): 1 113 Stepping: 0 114 Frequency boost: enabled 115-CPU(s) scaling MHz: 52% 116+CPU(s) scaling MHz: 54% 117 CPU max MHz: 4560.3242 118-CPU min MHz: 576.9090 119-BogoMIPS: 7785.12 120-Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr rdpru wbnoinvd arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl umip rdpid overflow_recov succor smca sev sev_es 121-Virtualization: AMD-V 122-L1d cache: 256 KiB (8 instances) 123-L1i cache: 256 KiB (8 instances) 124-L2 cache: 4 MiB (8 instances) 125-L3 cache: 32 MiB (2 instances) 126-NUMA node(s): 1 127-NUMA node0 CPU(s): 0-15 128-Vulnerability Gather data sampling: Not affected 129-Vulnerability Ghostwrite: Not affected 130-Vulnerability Indirect target selection: Not affected 131-Vulnerability Itlb multihit: Not affected 132-Vulnerability L1tf: Not affected 133-Vulnerability Mds: Not affected 134-Vulnerability Meltdown: Not affected 135-Vulnerability Mmio stale data: Not affected 136-Vulnerability Old microcode: Not affected 137-Vulnerability Reg file data sampling: Not affected 138-Vulnerability Retbleed: Mitigation; untrained return thunk; SMT enabled with STIBP protection 139-Vulnerability Spec rstack overflow: Mitigation; Safe RET 140-Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl 141-Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization 142-Vulnerability Spectre v2: Mitigation; Retpolines; IBPB conditional; STIBP always-on; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected 143-Vulnerability Srbds: Not affected 144-Vulnerability Tsa: Not affected 145-Vulnerability Tsx async abort: Not affected 146-Vulnerability Vmscape: Mitigation; IBPB before exit to userspace 147diff --git a/bench.sh b/bench.sh 148index 7b163c08f9fe4a0d811966bc85557af7225cdb38..4d504e9363f1702e3b9447b1909b1837749c3cce 100755 149--- a/bench.sh 150+++ b/bench.sh 151@@ -2,6 +2,8 @@ #!/usr/bin/env bash 152 153 154 { 155+ echo "Zig: " "$(zig version)" 156+ echo "" 157 echo "RELEASE FAST"; 158 zig build --release=fast; 159 du -sh zig-out/bin/aoc2024; 160@@ -10,23 +12,30 @@ 161 echo "" 162 echo "" 163 164+ echo "RELEASE SAFE"; 165+ zig build --release=safe; 166+ du -sh zig-out/bin/aoc2024; 167+ ./zig-out/bin/bench; 168+ 169+ echo "" 170+ echo "" 171+ 172 echo "RELEASE SMALL"; 173 zig build --release=small; 174 du -sh zig-out/bin/aoc2024; 175 ./zig-out/bin/bench; 176 177-# it panics for now 178-# echo "" 179-# echo "" 180-# 181-# echo "Debug"; 182-# zig build; 183-# du -sh zig-out/bin/aoc2024; 184-# ./zig-out/bin/bench; 185+ echo "" 186+ echo "" 187+ 188+ echo "DEBUG"; 189+ zig build; 190+ du -sh zig-out/bin/aoc2024; 191+ ./zig-out/bin/bench; 192 193 echo "" 194 195 echo "CPU INFO" 196- lscpu 197+ lscpu | head -n 17 198 } > BENCH 199 200diff --git a/build.zig.zon b/build.zig.zon 201index c15561371fd911cc82329d0e87bcec630ab8e43c..655a74b31979a8129256bef93591bd50e73128e2 100644 202--- a/build.zig.zon 203+++ b/build.zig.zon 204@@ -1,5 +1,5 @@ 205 .{ 206- .name = .aoc2024, 207+ .name = .aoc2025, 208 .version = "0.0.0", 209 .minimum_zig_version = "0.15.1", 210 .fingerprint = 0x25105d439732947a, 211diff --git a/src/bench.zig b/src/bench.zig 212index 5dbcd9bef9582ca8d77eae91464b22d2385bf2fc..31f574419df826ca360db2e21fbadce3aaafad71 100644 213--- a/src/bench.zig 214+++ b/src/bench.zig 215@@ -1,4 +1,5 @@ 216 const std = @import("std"); 217+const builtin = @import("builtin"); 218 const zbench = @import("zbench"); 219 220 const day1 = @import("day1.zig"); 221@@ -6,6 +7,7 @@ const day2 = @import("day2.zig"); 222 const day3 = @import("day3.zig"); 223 const day4 = @import("day4.zig"); 224 const day5 = @import("day5.zig"); 225+const day6 = @import("day6.zig"); 226 227 fn day1pt1(_: std.mem.Allocator) void { 228 _ = day1.pt1(@embedFile("input/day1")); 229@@ -47,6 +49,14 @@ fn day5pt2(alloc: std.mem.Allocator) void { 230 _ = day5.pt2(alloc, @embedFile("input/day5")) catch unreachable; 231 } 232 233+fn day6pt1(_: std.mem.Allocator) void { 234+ _ = day6.pt1(@embedFile("input/day6")); 235+} 236+ 237+fn day6pt2(_: std.mem.Allocator) void { 238+ _ = day6.pt2(@embedFile("input/day6")); 239+} 240+ 241 pub fn main() !void { 242 var stdout = std.fs.File.stdout().writerStreaming(&.{}); 243 const writer = &stdout.interface; 244@@ -62,8 +72,17 @@ try bench.add("Dia 3 parte 1", day3pt1, .{}); 245 try bench.add("Dia 3 parte 2", day3pt2, .{}); 246 try bench.add("Dia 4 parte 1", day4pt1, .{}); 247 try bench.add("Dia 4 parte 2", day4pt2, .{}); 248- try bench.add("Dia 5 parte 1", day5pt1, .{ .track_allocations = true }); 249- try bench.add("Dia 5 parte 2", day5pt2, .{ .track_allocations = true }); 250+ // FIXME: this is a bug on the zbench that on debug or release safe mode it 251+ // panics calculating memory used. 252+ if (builtin.mode == .Debug or builtin.mode == .ReleaseSafe) { 253+ try bench.add("Dia 5 parte 1", day5pt1, .{}); 254+ try bench.add("Dia 5 parte 2", day5pt2, .{}); 255+ } else { 256+ try bench.add("Dia 5 parte 1", day5pt1, .{ .track_allocations = true }); 257+ try bench.add("Dia 5 parte 2", day5pt2, .{ .track_allocations = true }); 258+ } 259+ try bench.add("Dia 6 parte 1", day6pt1, .{}); 260+ try bench.add("Dia 6 parte 2", day6pt2, .{}); 261 262 try writer.writeAll("\n"); 263 try bench.run(writer); 264diff --git a/src/day6.zig b/src/day6.zig 265new file mode 100644 266index 0000000000000000000000000000000000000000..4c6d8f9c768f6246aaf8c05b60960fd5cdf5de17 267--- /dev/null 268+++ b/src/day6.zig 269@@ -0,0 +1,135 @@ 270+const std = @import("std"); 271+ 272+const board_height: u64 = 5; 273+const board_width: u64 = 3785; 274+ 275+pub fn pt1(input: []const u8) u64 { 276+ var x: usize = 0; 277+ var counter: u64 = 0; 278+ while (x < board_width) { 279+ const width = getChunkSize(input, x); 280+ counter += calulateChunckPt1(input, x, width); 281+ x += width + 1; 282+ } 283+ return counter; 284+} 285+ 286+pub fn pt2(input: []const u8) u64 { 287+ var x: usize = 0; 288+ var counter: u64 = 0; 289+ while (x < board_width) { 290+ const width = getChunkSize(input, x); 291+ counter += calulateChunckPt2(input, x, width); 292+ x += width + 1; 293+ } 294+ return counter; 295+} 296+ 297+fn get(input: []const u8, x: usize, y: usize) u8 { 298+ return input[x + (y * board_width)]; 299+} 300+ 301+fn getChunkSize(input: []const u8, x: usize) usize { 302+ for (x..board_width) |w| { 303+ var empty_count: usize = 0; 304+ for (0..board_height) |h| { 305+ const c = get(input, w, h); 306+ if (c == ' ' or c == '\n') empty_count += 1; 307+ } 308+ 309+ if (empty_count == board_height) { 310+ return w - x; 311+ } 312+ } 313+ 314+ unreachable; 315+} 316+ 317+fn calulateChunckPt1(input: []const u8, x: usize, width: usize) u64 { 318+ var numbers: [board_height - 1]u64 = undefined; 319+ 320+ for (0..(board_height - 1)) |h| { 321+ const from = x + (h * board_width); 322+ const to = x + (h * board_width) + width; 323+ const number_str = input[from..to]; 324+ const trimed_number_str = std.mem.trim(u8, number_str, " "); 325+ const number = std.fmt.parseInt(u64, trimed_number_str, 10) catch unreachable; 326+ numbers[h] = number; 327+ } 328+ 329+ var sum = true; 330+ 331+ for (0..width) |w| { 332+ const c = get(input, w + x, board_height - 1); 333+ if (c == '*') { 334+ sum = !sum; 335+ break; 336+ } 337+ } 338+ 339+ if (sum) { 340+ var counter: u64 = 0; 341+ for (numbers) |n| { 342+ counter += n; 343+ } 344+ return counter; 345+ } else { 346+ var counter: u64 = 1; 347+ for (numbers) |n| { 348+ counter *= n; 349+ } 350+ return counter; 351+ } 352+} 353+ 354+fn calulateChunckPt2(input: []const u8, x: usize, width: usize) u64 { 355+ // guessing a higher number of column so I don't have to alloc 356+ var numbers: [10]u64 = undefined; 357+ 358+ var number_str: [board_height - 1]u8 = undefined; 359+ 360+ for (x..(x + width), 0..) |w, i| { 361+ for (0..board_height - 1) |h| { 362+ const c = get(input, w, h); 363+ number_str[h] = c; 364+ } 365+ 366+ const trimed_number_str = std.mem.trim(u8, &number_str, " "); 367+ const number = std.fmt.parseInt(u64, trimed_number_str, 10) catch unreachable; 368+ numbers[i] = number; 369+ } 370+ 371+ var sum = true; 372+ 373+ for (0..width) |w| { 374+ const c = get(input, w + x, board_height - 1); 375+ if (c == '*') { 376+ sum = !sum; 377+ break; 378+ } 379+ } 380+ 381+ if (sum) { 382+ var counter: u64 = 0; 383+ for (0..width) |n| { 384+ counter += numbers[n]; 385+ } 386+ return counter; 387+ } else { 388+ var counter: u64 = 1; 389+ for (0..width) |n| { 390+ counter *= numbers[n]; 391+ } 392+ return counter; 393+ } 394+} 395+ 396+test "Day 6 part 1" { 397+ const res = pt1(@embedFile("./input/day6")); 398+ try std.testing.expect(res == 6757749566978); 399+} 400+ 401+test "Day 6 part 2" { 402+ const res = pt2(@embedFile("./input/day6")); 403+ try std.testing.expect(res == 10603075273949); 404+} 405diff --git a/src/input/day6 b/src/input/day6 406new file mode 100644 407index 0000000000000000000000000000000000000000..94a75eb715fc5b073fe9e3b2eda0b856a781421c 408Binary files /dev/null and b/src/input/day6 differ 409diff --git a/src/main.zig b/src/main.zig 410index 911929f200374eb17e0ec8f9461609c4465d5d7f..abb98481e45e3776b8b7f75bf3fea8e90dde508c 100644 411--- a/src/main.zig 412+++ b/src/main.zig 413@@ -4,6 +4,7 @@ const day2 = @import("day2.zig"); 414 const day3 = @import("day3.zig"); 415 const day4 = @import("day4.zig"); 416 const day5 = @import("day5.zig"); 417+const day6 = @import("day6.zig"); 418 419 pub fn main() !void { 420 var gpa = std.heap.GeneralPurposeAllocator(.{ .thread_safe = false }){}; 421@@ -33,6 +34,10 @@ } else if (std.mem.eql(u8, "day5", day)) { 422 const input = @embedFile("./input/day5"); 423 print(try day5.pt1(alloc, input)); 424 print(try day5.pt2(alloc, input)); 425+ } else if (std.mem.eql(u8, "day6", day)) { 426+ const input = @embedFile("./input/day6"); 427+ print(day6.pt1(input)); 428+ print(day6.pt2(input)); 429 } 430 } 431 }