diff --git a/day1-zig/build.zig b/day1-zig/build.zig new file mode 100644 index 0000000..40cbf96 --- /dev/null +++ b/day1-zig/build.zig @@ -0,0 +1,116 @@ +const std = @import("std"); + +// Although this function looks imperative, note that its job is to +// declaratively construct a build graph that will be executed by an external +// runner. +pub fn build(b: *std.Build) void { + // Standard target options allows the person running `zig build` to choose + // what target to build for. Here we do not override the defaults, which + // means any target is allowed, and the default is native. Other options + // for restricting supported target set are available. + const target = b.standardTargetOptions(.{}); + + // Standard optimization options allow the person running `zig build` to select + // between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall. Here we do not + // set a preferred release mode, allowing the user to decide how to optimize. + const optimize = b.standardOptimizeOption(.{}); + + // // This creates a "module", which represents a collection of source files alongside + // // some compilation options, such as optimization mode and linked system libraries. + // // Every executable or library we compile will be based on one or more modules. + // const lib_mod = b.createModule(.{ + // // `root_source_file` is the Zig "entry point" of the module. If a module + // // only contains e.g. external object files, you can make this `null`. + // // In this case the main source file is merely a path, however, in more + // // complicated build scripts, this could be a generated file. + // .root_source_file = b.path("src/root.zig"), + // .target = target, + // .optimize = optimize, + // }); + + // We will also create a module for our other entry point, 'main.zig'. + const exe_mod = b.createModule(.{ + // `root_source_file` is the Zig "entry point" of the module. If a module + // only contains e.g. external object files, you can make this `null`. + // In this case the main source file is merely a path, however, in more + // complicated build scripts, this could be a generated file. + .root_source_file = b.path("src/main.zig"), + .target = target, + .optimize = optimize, + }); + + // Modules can depend on one another using the `std.Build.Module.addImport` function. + // This is what allows Zig source code to use `@import("foo")` where 'foo' is not a + // file path. In this case, we set up `exe_mod` to import `lib_mod`. + // exe_mod.addImport("day1_zig_lib", lib_mod); + + // Now, we will create a static library based on the module we created above. + // This creates a `std.Build.Step.Compile`, which is the build step responsible + // for actually invoking the compiler. + // const lib = b.addLibrary(.{ + // .linkage = .static, + // .name = "day1_zig", + // .root_module = lib_mod, + // }); + + // This declares intent for the library to be installed into the standard + // location when the user invokes the "install" step (the default step when + // running `zig build`). + // b.installArtifact(lib); + + // This creates another `std.Build.Step.Compile`, but this one builds an executable + // rather than a static library. + const exe = b.addExecutable(.{ + .name = "day1_zig", + .root_module = exe_mod, + }); + + // This declares intent for the executable to be installed into the + // standard location when the user invokes the "install" step (the default + // step when running `zig build`). + b.installArtifact(exe); + + // This *creates* a Run step in the build graph, to be executed when another + // step is evaluated that depends on it. The next line below will establish + // such a dependency. + const run_cmd = b.addRunArtifact(exe); + + // By making the run step depend on the install step, it will be run from the + // installation directory rather than directly from within the cache directory. + // This is not necessary, however, if the application depends on other installed + // files, this ensures they will be present and in the expected location. + run_cmd.step.dependOn(b.getInstallStep()); + + // This allows the user to pass arguments to the application in the build + // command itself, like this: `zig build run -- arg1 arg2 etc` + if (b.args) |args| { + run_cmd.addArgs(args); + } + + // This creates a build step. It will be visible in the `zig build --help` menu, + // and can be selected like this: `zig build run` + // This will evaluate the `run` step rather than the default, which is "install". + const run_step = b.step("run", "Run the app"); + run_step.dependOn(&run_cmd.step); + + // Creates a step for unit testing. This only builds the test executable + // but does not run it. + // const lib_unit_tests = b.addTest(.{ + // .root_module = lib_mod, + // }); + + // const run_lib_unit_tests = b.addRunArtifact(lib_unit_tests); + + const exe_unit_tests = b.addTest(.{ + .root_module = exe_mod, + }); + + const run_exe_unit_tests = b.addRunArtifact(exe_unit_tests); + + // Similar to creating the run step earlier, this exposes a `test` step to + // the `zig build --help` menu, providing a way for the user to request + // running the unit tests. + const test_step = b.step("test", "Run unit tests"); + // test_step.dependOn(&run_lib_unit_tests.step); + test_step.dependOn(&run_exe_unit_tests.step); +} diff --git a/day1-zig/build.zig.zon b/day1-zig/build.zig.zon new file mode 100644 index 0000000..6f3d8ec --- /dev/null +++ b/day1-zig/build.zig.zon @@ -0,0 +1,86 @@ +.{ + // This is the default name used by packages depending on this one. For + // example, when a user runs `zig fetch --save `, this field is used + // as the key in the `dependencies` table. Although the user can choose a + // different name, most users will stick with this provided value. + // + // It is redundant to include "zig" in this name because it is already + // within the Zig package namespace. + .name = .day1_zig, + + // This is a [Semantic Version](https://semver.org/). + // In a future version of Zig it will be used for package deduplication. + .version = "0.0.0", + + // Together with name, this represents a globally unique package + // identifier. This field is generated by the Zig toolchain when the + // package is first created, and then *never changes*. This allows + // unambiguous detection of one package being an updated version of + // another. + // + // When forking a Zig project, this id should be regenerated (delete the + // field and run `zig build`) if the upstream project is still maintained. + // Otherwise, the fork is *hostile*, attempting to take control over the + // original project's identity. Thus it is recommended to leave the comment + // on the following line intact, so that it shows up in code reviews that + // modify the field. + .fingerprint = 0x1cf2d21aac6be3f, // Changing this has security and trust implications. + + // Tracks the earliest Zig version that the package considers to be a + // supported use case. + .minimum_zig_version = "0.14.1", + + // This field is optional. + // Each dependency must either provide a `url` and `hash`, or a `path`. + // `zig build --fetch` can be used to fetch all dependencies of a package, recursively. + // Once all dependencies are fetched, `zig build` no longer requires + // internet connectivity. + .dependencies = .{ + // See `zig fetch --save ` for a command-line interface for adding dependencies. + //.example = .{ + // // When updating this field to a new URL, be sure to delete the corresponding + // // `hash`, otherwise you are communicating that you expect to find the old hash at + // // the new URL. If the contents of a URL change this will result in a hash mismatch + // // which will prevent zig from using it. + // .url = "https://example.com/foo.tar.gz", + // + // // This is computed from the file contents of the directory of files that is + // // obtained after fetching `url` and applying the inclusion rules given by + // // `paths`. + // // + // // This field is the source of truth; packages do not come from a `url`; they + // // come from a `hash`. `url` is just one of many possible mirrors for how to + // // obtain a package matching this `hash`. + // // + // // Uses the [multihash](https://multiformats.io/multihash/) format. + // .hash = "...", + // + // // When this is provided, the package is found in a directory relative to the + // // build root. In this case the package's hash is irrelevant and therefore not + // // computed. This field and `url` are mutually exclusive. + // .path = "foo", + // + // // When this is set to `true`, a package is declared to be lazily + // // fetched. This makes the dependency only get fetched if it is + // // actually used. + // .lazy = false, + //}, + }, + + // Specifies the set of files and directories that are included in this package. + // Only files and directories listed here are included in the `hash` that + // is computed for this package. Only files listed here will remain on disk + // when using the zig package manager. As a rule of thumb, one should list + // files required for compilation plus any license(s). + // Paths are relative to the build root. Use the empty string (`""`) to refer to + // the build root itself. + // A directory listed here means that all files within, recursively, are included. + .paths = .{ + "build.zig", + "build.zig.zon", + "src", + // For example... + //"LICENSE", + //"README.md", + }, +} diff --git a/day1-zig/input/day1.txt b/day1-zig/input/day1.txt new file mode 100644 index 0000000..78a879b --- /dev/null +++ b/day1-zig/input/day1.txt @@ -0,0 +1,4186 @@ +R9 +L8 +L26 +R45 +R40 +L45 +R13 +L20 +L8 +R5 +R47 +R38 +L22 +L26 +L22 +L19 +L25 +L21 +L15 +R19 +R3 +R33 +R46 +L9 +R48 +L21 +R13 +R10 +L20 +R48 +L43 +R44 +R35 +R23 +L48 +L21 +L7 +R26 +L23 +L50 +L34 +R22 +L14 +R21 +L47 +R16 +R21 +L5 +L48 +R85 +R87 +L82 +R53 +L22 +L49 +L92 +L8 +R36 +R72 +R92 +R36 +L13 +R55 +L85 +L14 +L74 +L28 +L65 +L12 +R24 +R76 +R13 +L15 +L31 +L81 +L86 +L62 +R37 +L76 +R8 +R30 +L84 +L51 +R67 +R31 +R14 +R86 +L89 +R76 +L16 +R29 +R47 +R46 +R14 +R69 +R24 +R82 +R18 +R1 +R92 +L51 +R44 +L13 +R87 +R76 +R64 +L90 +R66 +L73 +L26 +R78 +R86 +L15 +R74 +L390 +L510 +R899 +L67 +R32 +L935 +L2 +L27 +L11 +L889 +L138 +L6 +L56 +R25 +L25 +L2 +R2 +L13 +L87 +R68 +L17 +R49 +R78 +R17 +L68 +L14 +L1 +L780 +R68 +L29 +L59 +R971 +L19 +R57 +L25 +R33 +L6 +L81 +R258 +L3 +L88 +L909 +R24 +R53 +L53 +L24 +R278 +R37 +R85 +L17 +R417 +L58 +R42 +R45 +R871 +R48 +R67 +L715 +R15 +L77 +R62 +R50 +R50 +R363 +L27 +L9 +R261 +L62 +R2 +R99 +R57 +L684 +R399 +L447 +L94 +R97 +R97 +R75 +R44 +R42 +L149 +L536 +L64 +L11 +R43 +L196 +L32 +L75 +L40 +L360 +R824 +R912 +L64 +R135 +R54 +L33 +R89 +L30 +L80 +R82 +R12 +L90 +L4 +L56 +R956 +L662 +L62 +L43 +L8 +R76 +L98 +L8 +R61 +R344 +L78 +L37 +L85 +R73 +L73 +R260 +R40 +R33 +L236 +L11 +R89 +R25 +L9 +L91 +L410 +R97 +R2 +R261 +R85 +L957 +L24 +R95 +L94 +R41 +R4 +R112 +R188 +L34 +R34 +R32 +L13 +L26 +L8 +R17 +R6 +L8 +L28 +L28 +R56 +R79 +R15 +R606 +R76 +R224 +L47 +L77 +R29 +L5 +L5 +R773 +R50 +R82 +R355 +L77 +L25 +L43 +R16 +L726 +R69 +R16 +L85 +R86 +L71 +L82 +R60 +L11 +L8 +R524 +L24 +R26 +R760 +L60 +L12 +L88 +L72 +R317 +R154 +R96 +L65 +R66 +L27 +R3 +L4 +R36 +L53 +L51 +L90 +R90 +R40 +R89 +L18 +R34 +R40 +R15 +R70 +L270 +L58 +L42 +L71 +L27 +L2 +R942 +L930 +R19 +R40 +R29 +R9 +R54 +L171 +R8 +L814 +L86 +L716 +L84 +L59 +L41 +L25 +R25 +L68 +R51 +R70 +R39 +L892 +R60 +R74 +R93 +R26 +R47 +R62 +L55 +R436 +R31 +R1 +R25 +R35 +R65 +L62 +L38 +R76 +L678 +L91 +R93 +L91 +L9 +L10 +L90 +L13 +R92 +L379 +R54 +R46 +L81 +L29 +R95 +L58 +R61 +R12 +L12 +R373 +L71 +L12 +R77 +L955 +R6 +R71 +L19 +L20 +R475 +L22 +R9 +R944 +R2 +L42 +L85 +R39 +R38 +L112 +R16 +R75 +L375 +R68 +R32 +L48 +R98 +R82 +L60 +R107 +R358 +L40 +L97 +R34 +R66 +L426 +R9 +L23 +L66 +L70 +R7 +R39 +R30 +L31 +R548 +L317 +R39 +R171 +L59 +R449 +R61 +L15 +L97 +L49 +R78 +L4 +R26 +R84 +R893 +L37 +R32 +R728 +L93 +L64 +R357 +L270 +L69 +R39 +R76 +L87 +R94 +R28 +L620 +R658 +L49 +L193 +R4 +L211 +L43 +R702 +L29 +L43 +R20 +L209 +R34 +L72 +R3 +R37 +L89 +L67 +R783 +L27 +L52 +R20 +R37 +R19 +R476 +R33 +R56 +L6 +L58 +L48 +L9 +R51 +R64 +R17 +L7 +L64 +L29 +R45 +L845 +L726 +L12 +L162 +L91 +R29 +R38 +L72 +R96 +R50 +R53 +L29 +L63 +L311 +R201 +R999 +R88 +R12 +L593 +L6 +R51 +R17 +R434 +L48 +R999 +R46 +R79 +L553 +L26 +L80 +R836 +R744 +L905 +L51 +L69 +L9 +L85 +R67 +R52 +L78 +L822 +L14 +L8 +L3 +L75 +L57 +L49 +R6 +L75 +R81 +R694 +L59 +R959 +R67 +L67 +R853 +R47 +R42 +L919 +L23 +R11 +L94 +L78 +R85 +L39 +L85 +R26 +L30 +R4 +L93 +R51 +L211 +R53 +R10 +R90 +R51 +R95 +R42 +L103 +L382 +L3 +L25 +L75 +L69 +L766 +R95 +L260 +L78 +L23 +R41 +R66 +L43 +R78 +L14 +R94 +L321 +R23 +R99 +R76 +R180 +R58 +L10 +L26 +L65 +L35 +R58 +R42 +R20 +R41 +R39 +R8 +L60 +R22 +L74 +L72 +R76 +L31 +R87 +R44 +R59 +R69 +L5 +L57 +L813 +R881 +R80 +L14 +L98 +L60 +R21 +R37 +L73 +R66 +R61 +L54 +L612 +L56 +R57 +L26 +R37 +R745 +R36 +L76 +L5 +R152 +L68 +L714 +L61 +L32 +R97 +R49 +L48 +L75 +R27 +R88 +R61 +R506 +L47 +L90 +L89 +R45 +L3 +L20 +R52 +R70 +R40 +R867 +L93 +R82 +L37 +L5 +R46 +R30 +R97 +R73 +L40 +R60 +L20 +L705 +L22 +L73 +L66 +R713 +L947 +L39 +R83 +L54 +R322 +R97 +R97 +R49 +R13 +L68 +L49 +L73 +R3 +L50 +L31 +R83 +R70 +L85 +L593 +R37 +R60 +R28 +L91 +R91 +R184 +R16 +R46 +R33 +L79 +L80 +L20 +R19 +L17 +L27 +R25 +R9 +L9 +R21 +R79 +L20 +L10 +R72 +L542 +L43 +R56 +R87 +L68 +L32 +R18 +R82 +L306 +L68 +L26 +L51 +R51 +R79 +L277 +R45 +R19 +R44 +R38 +L233 +L71 +L17 +L58 +R703 +R728 +R26 +R75 +L44 +L357 +L31 +R667 +R64 +R57 +L57 +L883 +L817 +R54 +R10 +L86 +L75 +L903 +L55 +R52 +L97 +R51 +R49 +R91 +R15 +L1 +R95 +R21 +L22 +L99 +R51 +R449 +L45 +R19 +R26 +L223 +L677 +L1 +L399 +L41 +L59 +R224 +L24 +R228 +R26 +L68 +R238 +R76 +R85 +L85 +R99 +R595 +R872 +R234 +R24 +L90 +L34 +R69 +R58 +L27 +L99 +L67 +R66 +L74 +L26 +L988 +L12 +R734 +L43 +L91 +R46 +R66 +L12 +L30 +R53 +L77 +R54 +R90 +R10 +L399 +L16 +L20 +R85 +L77 +R841 +R86 +R13 +L33 +R3 +R31 +L85 +R170 +L99 +R86 +R14 +L17 +L83 +L41 +R16 +L475 +R946 +R28 +R66 +R85 +L25 +L15 +L85 +R684 +R65 +L49 +R69 +R92 +L72 +R7 +R4 +R52 +L55 +R40 +L356 +L81 +R348 +L26 +R778 +L45 +L30 +R60 +R17 +R98 +R435 +R65 +L618 +R37 +R81 +R80 +R20 +R84 +L77 +L10 +L40 +L37 +L20 +L847 +L47 +L62 +R32 +L58 +R716 +R66 +R63 +R93 +R44 +R33 +R60 +L9 +R70 +L654 +L48 +L7 +L70 +L75 +R96 +R94 +R60 +L655 +L795 +R44 +L44 +L84 +R55 +R12 +R17 +L92 +L51 +R43 +R54 +R646 +L987 +R87 +R34 +R66 +L80 +L947 +R320 +L51 +R79 +L21 +R90 +L2 +L32 +R44 +R12 +R87 +L4 +R534 +R265 +L69 +L47 +L28 +L60 +R10 +R54 +R80 +L35 +R1 +R91 +R9 +L7 +R98 +L55 +L18 +R782 +R968 +L383 +L510 +L178 +L354 +L40 +R97 +L39 +L92 +R31 +L22 +L23 +L655 +R33 +L478 +R25 +L588 +L15 +L565 +L50 +R47 +L10 +L99 +L2 +L95 +L582 +L529 +R8 +R80 +L51 +R41 +L55 +L45 +R898 +R32 +R411 +L692 +R248 +R33 +R41 +R664 +R95 +R24 +L74 +L234 +L816 +R75 +L17 +R42 +R989 +R411 +R165 +L65 +R47 +L47 +L480 +R58 +R76 +L54 +R17 +R93 +R78 +R12 +L62 +R62 +R13 +L13 +R90 +R8 +L75 +R77 +R11 +L406 +L90 +R6 +L73 +R52 +R91 +R52 +L88 +L25 +L8 +L35 +R94 +L81 +R17 +L17 +R51 +R49 +L414 +R48 +R46 +R20 +L95 +L40 +L532 +L33 +R97 +R1 +L95 +L494 +R60 +L69 +R33 +L534 +R1 +L44 +L474 +R68 +L61 +L585 +R96 +R43 +R79 +R7 +R48 +L433 +R49 +L93 +L60 +R60 +L24 +R550 +R74 +R39 +L39 +L8 +L420 +R28 +L99 +R5 +L20 +L86 +L80 +R68 +R58 +R48 +R934 +R23 +R48 +L99 +R59 +L31 +L28 +R55 +R23 +R76 +L86 +L68 +R24 +L24 +R97 +R3 +L1 +R1 +R1 +R90 +L89 +L8 +R39 +L97 +R64 +L408 +R8 +R588 +L488 +L85 +R85 +R60 +R40 +L19 +R719 +L7 +L65 +R10 +R72 +L54 +L56 +L643 +R247 +L16 +L60 +L28 +R392 +R6 +R502 +R45 +R245 +R4 +L67 +R76 +R10 +R87 +L17 +R68 +R95 +L46 +R21 +L82 +R17 +L1 +L19 +R64 +R1 +R99 +R89 +L189 +L91 +R191 +R145 +L53 +L98 +L81 +R87 +R8 +R37 +L82 +L6 +R843 +L19 +L95 +L332 +R61 +L305 +R77 +R69 +R18 +R68 +R34 +L69 +L164 +R946 +R712 +L1 +L64 +R64 +L9 +R32 +R249 +R99 +R629 +L56 +R77 +R98 +R6 +L67 +L58 +L237 +L7 +L56 +L98 +R199 +L501 +R44 +L44 +R26 +L804 +R32 +L13 +L67 +R79 +R66 +L19 +L46 +L51 +R49 +L126 +R74 +R34 +R66 +L44 +L98 +L58 +R17 +L17 +L69 +L49 +R18 +L89 +L60 +L51 +L65 +L46 +L589 +R29 +R71 +L871 +L76 +R847 +R3 +L3 +R31 +L31 +R16 +R84 +L3 +L95 +R40 +L42 +R939 +R43 +L75 +L7 +L69 +R50 +L515 +R67 +R67 +L27 +R59 +L18 +L169 +R55 +L31 +R31 +L49 +R32 +L97 +R14 +L63 +R4 +R42 +L97 +L86 +R14 +R86 +R74 +R91 +R537 +L2 +R42 +R58 +L78 +L31 +L91 +R51 +R814 +L65 +L50 +L88 +L48 +R51 +L66 +L29 +L270 +R563 +L63 +R15 +L723 +R7 +R91 +L44 +R54 +R5 +R695 +R45 +L45 +R598 +L1 +R3 +L70 +R70 +L34 +L18 +R52 +L16 +R981 +R340 +L9 +R4 +R1 +R44 +R68 +R11 +R28 +R43 +R5 +L235 +R94 +L59 +R39 +L62 +L86 +L20 +R45 +L16 +L229 +R12 +L54 +R71 +L19 +L41 +L40 +R99 +L99 +L71 +L18 +L11 +R43 +L17 +R88 +L14 +R3 +R90 +R7 +R459 +L8 +R95 +R28 +R26 +R35 +R11 +R554 +R7 +R42 +R9 +R42 +L327 +R58 +L763 +R930 +L698 +R34 +L877 +R67 +L24 +L75 +L325 +R68 +R85 +R447 +L94 +L46 +L60 +R86 +R274 +R16 +R44 +R580 +L45 +R48 +R868 +R729 +L35 +L11 +R77 +R43 +L74 +R28 +L28 +L997 +R97 +L52 +R89 +L37 +R77 +L19 +L58 +L80 +L20 +R66 +L65 +L1 +R92 +L64 +R923 +R37 +R465 +L69 +R39 +R974 +R37 +R26 +R31 +R59 +R36 +L82 +R81 +L16 +L69 +L74 +R85 +R45 +L92 +L59 +R95 +R13 +R73 +L86 +R266 +L54 +R59 +L71 +R97 +L626 +R391 +R26 +L49 +L739 +R60 +R57 +L747 +R24 +R17 +L3 +R92 +R24 +R22 +R477 +L86 +L757 +R42 +R78 +R15 +L15 +R98 +R768 +R412 +R91 +R31 +L4 +R775 +R67 +L38 +L14 +R4 +R28 +L18 +R74 +L57 +R5 +L21 +R17 +R51 +L67 +L260 +L65 +R55 +L32 +R12 +R31 +L996 +L27 +L20 +R35 +L20 +R85 +R902 +R98 +R92 +R72 +L1 +L91 +L69 +L29 +R76 +R59 +L509 +R655 +L6 +L43 +R846 +L75 +L93 +L384 +L689 +L11 +L279 +L157 +R36 +L2 +R402 +R4 +R14 +R56 +R657 +R69 +L27 +L96 +L22 +L85 +L477 +R381 +R85 +L59 +L82 +R41 +R71 +L95 +R84 +L919 +R31 +R76 +R6 +R87 +R86 +L86 +R85 +R15 +L62 +L36 +R98 +L99 +L54 +L47 +R45 +R60 +L30 +L2 +R5 +L98 +R20 +R90 +R91 +R19 +L26 +R14 +R12 +R30 +R48 +L31 +R36 +R80 +R694 +L51 +L16 +L90 +R5 +L5 +R120 +R29 +R84 +L589 +R56 +R70 +L41 +L29 +L363 +L1 +R83 +R81 +R22 +L22 +L532 +R32 +L777 +L23 +L88 +R52 +R36 +L88 +L88 +L24 +R4 +R21 +R41 +R448 +R86 +R64 +R36 +R85 +R64 +L49 +L43 +R943 +L48 +L73 +L379 +L41 +L84 +L68 +R193 +L79 +L21 +L47 +R847 +R314 +R86 +R381 +L40 +L72 +R704 +L37 +L533 +R23 +L29 +R30 +L27 +R18 +R382 +R98 +R102 +R77 +L77 +R8 +R92 +R49 +R51 +L52 +R452 +L850 +R23 +R21 +L94 +R60 +L5 +R612 +R354 +L21 +L33 +L99 +R6 +L974 +R868 +R33 +L66 +L723 +R88 +L135 +L5 +L28 +L53 +R67 +L46 +R2 +L47 +L55 +R9 +R14 +L55 +R432 +L313 +R24 +R28 +R61 +R512 +R88 +L37 +L44 +L461 +R42 +L33 +R85 +L23 +L29 +L90 +L10 +L11 +R60 +L41 +L41 +R33 +R79 +L10 +L69 +L271 +R25 +L94 +R58 +L845 +L24 +L12 +R63 +R86 +L86 +L45 +R45 +R76 +L45 +L17 +R86 +R380 +L63 +L17 +L66 +L16 +R82 +L40 +L344 +R49 +L265 +L905 +R35 +R62 +L36 +L79 +L77 +R24 +L60 +L64 +R68 +R1 +L69 +L18 +L82 +L34 +R53 +R671 +L190 +R64 +L70 +R6 +L88 +R488 +L4 +R65 +R25 +L86 +R281 +R19 +R68 +L94 +L96 +L29 +L49 +R23 +L23 +L84 +R81 +L36 +L5 +L656 +L30 +L72 +L90 +R15 +R64 +L44 +L43 +L34 +L67 +R89 +R12 +R269 +L13 +R44 +R10 +L10 +L167 +L33 +R21 +L94 +R73 +L67 +L221 +R909 +R79 +L64 +R64 +L8 +R69 +L810 +R294 +L25 +R518 +R52 +R820 +R646 +R632 +R29 +R54 +L371 +L54 +L48 +L437 +L637 +L224 +L57 +R257 +R2 +R1 +L2 +L1 +R93 +L393 +L765 +R3 +L85 +L653 +R88 +L88 +R47 +R55 +L89 +R87 +R74 +R53 +R73 +R98 +R2 +L83 +L67 +L654 +R4 +L37 +L63 +L521 +L85 +L52 +R87 +R903 +L32 +R71 +R29 +L42 +R132 +L90 +R21 +R68 +L89 +R322 +L22 +R436 +L34 +R324 +L26 +R1 +R361 +L5 +L57 +R70 +R333 +L38 +L50 +R50 +L85 +R20 +R35 +R35 +R730 +R46 +L49 +R6 +L53 +L833 +R83 +L42 +L337 +R12 +R67 +R78 +R45 +L161 +R83 +R64 +R991 +L90 +R42 +L52 +L71 +R71 +R31 +L31 +L501 +L43 +L42 +R372 +R14 +L31 +R15 +L84 +R21 +L121 +R4 +L4 +L12 +L88 +L80 +R80 +L6 +L89 +R51 +L7 +R65 +R86 +L57 +L367 +R24 +R810 +R479 +L74 +L790 +R851 +L16 +R9 +L74 +L19 +L76 +R80 +L80 +R59 +R2 +R39 +L931 +L93 +R74 +L50 +L48 +R10 +R38 +R153 +R85 +R62 +R32 +L32 +R54 +R846 +R82 +R388 +R77 +R424 +L871 +L98 +L71 +R69 +L349 +R56 +R93 +R66 +R68 +L94 +L15 +R75 +L36 +R36 +L50 +L50 +R39 +R30 +R31 +L7 +L93 +L812 +R12 +R75 +R25 +L808 +R30 +L84 +R62 +L887 +L448 +R35 +R314 +L65 +R24 +L94 +L79 +R16 +L73 +R57 +R1 +L94 +L7 +R354 +R46 +R34 +R766 +L741 +L984 +R840 +L22 +L39 +R863 +L7 +R98 +L72 +L97 +L64 +L59 +R42 +R392 +L50 +R93 +L163 +L46 +R816 +L28 +R328 +L80 +L80 +R28 +L68 +R20 +R3 +L23 +L25 +R19 +R806 +L32 +L68 +L39 +R64 +R19 +R687 +L31 +L4 +R82 +L78 +R737 +R81 +L18 +R77 +L965 +L995 +L17 +R939 +R1 +L40 +R584 +R16 +L26 +L678 +R31 +L77 +R50 +L96 +L56 +L14 +L25 +R675 +R904 +L88 +R99 +L88 +R40 +L5 +L85 +R39 +L96 +L71 +R867 +L49 +L86 +L91 +R20 +R6 +L15 +L944 +R4 +L21 +R64 +L28 +R40 +R96 +L96 +L70 +R92 +L61 +R75 +L836 +R62 +R65 +L273 +R29 +L683 +L71 +R71 +L8 +R8 +R109 +L35 +R26 +R4 +R96 +R10 +L10 +L95 +L5 +R48 +R52 +L5 +L95 +L56 +R6 +R645 +L95 +R95 +L28 +L94 +R27 +R33 +R422 +L290 +R35 +R94 +R87 +L81 +L381 +L19 +L60 +R30 +L10 +R840 +L60 +R84 +L660 +L222 +L54 +R868 +L56 +L552 +L348 +L21 +R50 +L18 +L11 +R61 +L61 +R82 +L582 +L799 +L2 +R1 +L91 +R7 +L38 +L37 +R737 +R18 +R16 +L50 +L962 +R16 +R17 +L521 +R20 +R97 +L69 +R6 +L46 +R68 +L188 +L69 +R69 +R64 +L64 +R342 +R66 +R27 +R65 +L583 +L17 +R161 +L22 +R661 +L50 +R68 +L163 +L25 +R2 +R168 +R16 +R884 +L790 +L70 +L79 +L20 +R59 +L317 +R31 +L9 +R51 +R44 +R91 +L67 +R98 +R678 +R20 +L4 +L96 +L43 +R91 +R12 +L30 +L550 +L43 +R43 +R25 +L25 +R604 +R17 +L46 +L76 +L24 +R5 +R39 +L819 +R5 +L85 +R59 +L99 +R77 +R4 +L9 +L72 +R46 +L526 +R48 +L878 +R872 +R99 +R59 +R750 +R50 +L59 +R59 +L569 +R51 +L8 +L74 +L67 +L53 +R26 +L806 +L81 +L55 +L11 +R23 +L199 +R140 +L45 +R55 +R45 +R28 +L91 +L93 +R11 +L95 +L41 +L58 +R967 +L866 +R49 +L83 +L62 +R51 +R90 +L69 +L60 +L50 +L13 +L687 +L10 +L35 +R555 +R90 +R873 +R27 +L37 +L80 +L590 +L3 +R81 +R57 +L991 +R41 +R13 +L91 +R78 +R22 +L34 +R7 +L73 +L722 +L78 +L39 +L60 +R17 +L20 +L98 +R35 +L13 +R461 +R46 +L56 +R39 +L12 +L564 +L350 +L75 +L63 +R13 +R39 +R90 +R730 +R28 +L10 +R62 +R88 +L88 +R22 +R78 +R219 +R81 +R947 +R8 +R664 +R82 +R9 +R28 +L652 +L86 +L81 +R66 +R96 +L40 +L41 +L999 +R99 +L64 +R64 +R25 +R950 +L31 +L61 +R5 +R12 +R342 +R58 +R35 +R65 +R13 +R449 +L83 +L79 +L26 +R26 +L21 +R25 +L709 +L95 +R62 +L79 +R17 +R63 +L63 +L84 +L94 +L11 +L11 +L55 +R76 +L21 +L67 +L68 +R9 +R68 +R40 +R859 +R14 +L6 +R14 +R39 +R51 +L47 +R94 +L739 +R39 +L82 +L18 +R82 +R74 +R44 +R472 +L20 +L52 +L899 +R31 +L25 +L44 +L51 +L12 +R93 +L93 +L40 +R13 +L7 +R834 +L57 +R4 +R10 +L57 +R480 +L80 +R17 +L17 +R95 +L91 +L168 +L28 +L53 +R92 +R273 +R67 +L87 +L83 +R783 +L96 +L946 +R9 +R33 +L6 +L220 +R54 +L98 +L24 +L94 +R88 +R17 +L60 +L392 +L42 +R77 +L33 +L67 +L1 +R901 +L63 +L37 +L2 +R568 +L66 +R27 +L27 +L4 +L65 +R307 +L638 +R36 +R23 +L50 +L709 +R86 +L86 +R77 +L77 +R147 +R53 +L75 +R812 +L539 +L98 +R33 +L33 +R43 +R57 +L30 +R80 +R50 +R7 +R307 +L52 +R22 +L46 +R62 +L30 +L94 +L62 +R47 +R39 +L90 +R927 +L37 +L25 +L453 +L25 +R76 +L973 +L641 +L922 +R63 +L33 +R37 +L4 +L69 +R577 +R92 +L71 +R24 +L53 +L2 +L914 +L684 +R63 +R62 +R24 +L129 +L23 +L97 +L44 +L56 +L578 +R78 +L12 +R12 +L219 +L681 +L13 +R313 +L43 +R56 +L64 +R51 +R72 +L66 +L52 +L822 +R68 +L45 +R745 +L39 +R15 +R24 +R4 +L4 +L82 +R54 +R723 +R8 +L3 +R59 +R41 +R58 +L135 +R77 +R24 +L24 +L21 +R44 +R77 +L24 +R1 +R24 +L95 +L6 +L64 +R64 +R50 +R62 +L112 +R853 +R36 +R14 +L71 +L848 +R16 +L70 +L2 +L28 +L917 +R84 +R33 +L321 +L6 +R327 +R619 +R71 +L35 +R45 +R87 +L927 +L260 +R934 +R15 +R6 +R723 +L82 +L57 +L27 +L5 +R436 +L827 +R884 +R990 +R84 +L41 +R41 +L1 +L673 +L851 +R83 +L28 +R9 +R50 +R37 +L97 +L86 +R715 +L32 +R9 +R31 +R55 +R56 +R49 +L73 +R2 +L3 +L80 +L288 +R3 +L344 +L17 +R15 +R85 +L277 +R777 +L773 +L909 +L18 +R91 +L53 +L538 +L74 +L26 +L39 +R39 +L93 +R55 +R18 +R2 +L82 +R40 +R23 +L61 +R63 +R535 +L206 +R6 +R19 +L38 +L5 +L76 +L18 +R65 +L21 +R7 +R867 +L70 +R82 +L95 +R56 +L73 +R90 +L90 +L69 +R69 +L461 +L39 +R89 +L85 +L8 +R45 +R159 +R37 +L73 +R17 +R986 +R14 +L81 +L77 +R19 +L42 +R801 +L1 +L334 +L66 +R96 +R88 +R16 +L86 +L14 +R28 +R527 +L32 +R50 +L863 +R57 +L51 +R84 +L98 +L2 +L20 +L680 +R16 +R62 +L21 +R23 +L818 +R38 +L5 +R5 +R631 +L56 +R25 +L330 +L55 +L15 +R84 +R22 +R94 +L32 +R32 +R81 +R19 +L1 +L299 +R92 +R36 +R10 +L60 +L88 +R69 +L91 +R88 +R58 +L14 +L59 +R12 +L5 +L678 +R30 +R76 +L12 +R45 +L60 +R46 +R99 +L46 +R52 +R60 +R940 +L522 +R71 +R51 +R83 +L55 +L15 +L27 +L91 +L95 +R68 +R70 +L34 +R681 +R826 +R89 +L94 +R36 +L42 +L956 +L44 +R19 +R94 +R97 +L54 +R79 +R65 +L882 +L18 +R88 +R403 +R9 +L39 +L10 +R49 +L31 +R65 +L8 +R43 +L21 +R543 +R9 +L78 +L65 +L57 +L62 +R18 +L56 +L507 +R70 +L57 +R94 +R46 +L88 +R248 +R52 +R42 +R740 +L304 +L36 +L2 +L398 +L25 +R38 +R869 +L51 +R69 +L38 +L478 +L576 +R32 +R60 +L66 +R66 +L95 +L5 +R98 +R76 +R14 +L17 +R87 +R312 +L81 +L89 +L62 +L70 +R132 +R46 +R88 +L34 +R56 +R496 +L52 +L55 +L41 +R61 +R35 +R64 +R72 +R58 +L52 +L32 +L74 +L827 +R91 +L999 +L1 +R67 +R33 +L63 +R63 +L51 +L249 +L30 +R42 +L90 +R78 +R891 +R23 +L5 +R91 +R35 +R89 +R993 +L67 +R76 +R374 +L54 +R19 +L79 +R68 +L79 +L756 +L19 +R31 +R46 +R18 +R905 +R222 +R346 +L64 +R12 +L88 +R43 +R86 +R943 +L66 +L13 +L81 +R32 +R30 +L10 +L949 +R72 +L33 +L38 +L53 +L444 +R32 +R218 +R3 +L68 +L54 +R49 +R22 +L419 +R710 +L540 +R14 +R32 +R49 +L49 +R654 +L90 +R90 +L15 +L33 +L27 +L79 +L49 +R39 +L36 +R10 +R54 +L64 +L368 +R49 +R19 +R57 +L57 +L33 +R141 +L8 +L90 +L10 +L44 +L739 +R95 +L812 +R73 +R93 +L18 +L39 +R59 +R3 +R91 +L62 +R53 +R35 +L88 +L69 +L31 +L38 +L62 +L87 +R89 +R298 +R71 +R606 +R58 +R73 +L78 +L30 +R853 +L76 +R79 +L56 +L48 +L330 +L986 +L36 +L43 +L2 +L12 +R57 +L57 +L95 +R17 +R33 +L98 +R933 +R367 +R65 +R35 +L69 +L47 +R416 +L893 +R68 +R98 +L78 +L34 +R27 +R812 +L7 +L27 +R9 +R60 +R65 +L84 +L316 +L32 +R811 +R21 +R46 +R54 +R63 +R37 +R704 +R96 +L86 +R86 +L38 +L62 +L52 +L48 +R96 +R89 +R45 +R28 +L158 +L608 +R29 +R116 +R563 +R98 +R56 +R46 +R48 +R82 +R515 +R5 +R31 +R299 +R20 +L296 +L304 +R79 +R21 +L16 +R16 +R515 +L15 +L24 +L97 +L75 +R42 +L46 +R41 +R39 +L75 +R483 +R52 +R94 +L65 +L38 +R24 +L22 +L92 +L2 +R8 +L20 +R73 +R24 +L90 +R93 +L57 +R30 +R7 +R93 +L931 +R31 +L42 +L1 +L57 +L56 +L88 +R44 +R55 +L50 +L50 +L23 +R811 +L39 +L19 +L88 +L97 +L11 +R63 +R48 +R9 +R90 +R674 +L20 +L49 +R793 +L29 +L51 +R83 +R35 +L35 +L83 +R88 +L5 +L373 +L27 +R19 +L84 +L335 +L29 +L28 +R41 +L84 +L82 +R83 +L67 +L34 +R44 +R83 +L47 +L480 +R885 +R817 +R34 +L36 +L48 +L52 +R890 +R10 +R71 +R29 +R66 +R72 +L2 +L99 +R649 +L86 +L32 +L44 +R876 +R32 +L90 +R1 +L2 +L41 +L94 +R16 +L19 +R47 +R50 +R57 +L8 +L6 +R41 +L13 +R81 +R647 +R72 +L71 +R387 +R13 +L851 +R33 +L182 +R820 +R12 +R68 +R84 +R68 +L52 +L12 +R72 +L740 +L20 +L28 +R255 +L9 +R249 +L66 +L282 +L25 +L704 +L72 +L6 +L438 +L74 +L24 +R759 +R40 +L75 +L92 +R455 +R344 +L16 +L19 +R28 +R67 +R75 +L48 +L654 +L40 +R91 +R63 +L620 +L86 +L321 +R668 +L31 +R252 +L54 +L62 +R33 +R36 +R31 +L42 +L58 +R35 +R79 +L54 +R80 +L883 +L95 +R71 +R3 +L36 +R88 +R28 +R54 +L70 +R997 +L5 +R376 +L68 +L46 +R37 +R738 +R71 +L951 +L346 +R97 +R90 +R86 +R18 +R14 +L2 +R169 +R225 +R74 +L54 +R80 +R401 +L52 +L49 +L16 +L21 +R37 +R97 +R3 +L489 +R842 +L36 +R87 +L79 +L25 +L9 +L16 +L247 +R72 +R24 +R76 +R75 +R25 +L63 +L39 +L4 +L95 +R85 +L11 +R47 +L34 +L78 +R57 +L65 +L16 +L77 +R93 +R4 +R493 +R21 +R582 +R42 +L42 +R56 +L356 +L94 +L91 +L31 +L88 +R82 +L978 +L1 +R1 +L273 +R796 +L18 +R86 +R9 +L783 +L817 +L42 +R442 +L98 +L52 +L50 +L45 +L737 +L18 +R34 +L34 +L22 +L2 +L76 +L316 +R27 +R155 +R34 +L61 +L39 +L94 +R42 +L626 +R30 +L44 +R24 +R774 +L34 +L81 +L453 +L65 +R80 +L53 +R8 +L6 +R98 +R41 +L27 +L934 +L80 +L84 +R84 +L72 +L565 +R37 +L177 +R31 +L54 +L73 +L86 +L68 +L75 +R5 +R17 +R18 +R11 +L40 +R91 +L45 +R49 +R96 +L53 +R53 +L70 +L42 +L9 +R75 +R218 +R28 +R58 +R42 +L80 +L792 +L750 +L78 +R31 +R36 +L39 +R68 +R37 +R5 +L17 +R74 +R5 +L627 +L15 +R842 +R219 +R795 +R83 +L36 +R19 +R276 +L32 +L362 +L20 +R58 +L75 +L125 +R67 +L667 +L28 +L972 +R16 +R7 +L24 +L99 +L6 +R49 +R44 +R935 +R857 +L679 +L82 +L18 +R729 +R55 +L75 +R91 +L32 +R299 +R76 +R93 +R33 +L70 +L74 +L25 +R49 +L49 +R28 +R490 +L18 +R66 +R34 +L89 +L953 +L26 +L32 +R58 +L58 +L15 +R54 +L66 +R27 +L55 +R3 +L13 +R165 +L88 +R32 +L24 +L44 +R24 +L99 +L50 +L71 +R769 +L26 +L29 +L19 +R276 +L51 +R528 +R342 +L94 +R92 +L25 +R60 +L167 +L31 +L5 +L731 +L969 +L36 +R94 +L99 +L464 +R92 +R40 +L93 +R68 +R698 +R73 +L73 +L16 +L938 +R422 +L657 +L61 +R33 +L83 +R599 +L13 +L86 +L51 +L5 +L72 +R26 +R2 +L13 +R54 +R55 +R4 +L55 +R965 +L35 +R67 +L31 +L606 +R33 +R56 +R206 +R38 +L85 +R61 +L14 +R15 +L15 +R34 +L9 +L83 +L7 +L33 +L36 +R44 +L14 +R4 +R928 +R758 +R456 +L72 +R40 +R69 +L196 +R28 +R89 +L72 +L83 +L34 +L11 +L9 +R91 +R54 +R127 +L87 +R30 +R80 +R14 +L688 +L4 +R92 +R84 +R16 +L61 +R61 +L76 +L414 +R471 +R132 +L13 +R59 +R15 +L198 +L646 +R70 +R88 +L88 +R53 +R90 +L43 +L177 +R12 +R65 +R20 +R75 +L32 +R940 +L3 +R51 +L54 +R10 +R93 +L804 +L596 +R45 +L472 +R48 +L13 +R43 +R70 +L13 +R306 +R86 +L63 +R8 +L45 +L27 +L73 +L84 +R36 +L48 +R96 +L25 +R25 +L69 +L34 +R24 +L21 +R480 +L385 +L99 +R16 +L612 +L86 +R34 +L48 +R58 +R56 +R29 +L684 +L59 +L89 +L72 +R61 +R43 +L43 +R420 +R680 +R44 +R145 +L506 +L83 +R420 +L35 +R93 +L78 +L10 +L35 +R30 +R15 +R66 +R88 +L2 +R714 +R34 +L27 +L27 +R533 +R21 +R283 +R717 +L36 +R20 +R35 +R87 +R802 +L8 +R51 +L95 +R56 +L847 +R871 +L37 +L99 +R56 +R44 +L11 +R11 +R38 +L38 +R9 +R91 +L33 +R5 +L72 +L61 +L1 +L530 +R92 +R18 +R69 +R913 +R67 +R8 +L49 +R60 +R504 +L90 +L1 +R401 +R125 +R8 +R6 +L39 +L98 +R729 +L72 +R41 +R46 +R206 +L982 +R685 +R945 +L98 +L664 +R75 +L614 +R52 +L89 +R917 +L79 +L8 +R99 +L91 +R290 +L50 +L30 +L10 +R35 +R74 +R891 +L385 +L49 +R481 +L181 +L104 +L62 +R33 +L41 +L1 +L64 +R33 +L89 +L871 +L88 +R428 +L40 +L26 +L45 +L129 +R84 +L84 +R31 +L865 +L739 +R98 +L325 +L995 +R34 +R461 +L122 +R35 +L48 +L31 +L20 +R62 +L76 +R18 +R82 +L97 +R97 +R58 +R58 +R10 +L26 +L23 +L77 +R67 +L767 +L65 +R23 +R2 +L146 +L214 +L34 +L66 +R32 +L86 +L346 +R20 +L20 +L92 +R692 +L65 +R67 +R43 +R55 +R41 +R769 +R984 +L98 +L96 +L50 +R35 +L89 +R4 +R319 +R564 +L9 +R17 +L870 +L776 +L1 +L44 +R922 +L92 +R71 +R92 +L58 +R36 +R808 +L79 +L42 +L58 +R5 +L71 +L88 +R54 +R973 +L31 +R58 +L76 +L24 +L76 +R43 +L21 +L853 +L338 +R5 +L78 +L182 +L204 +L13 +R55 +L2 +L744 +L92 +R55 +L555 +L6 +R6 +L8 +L3 +R93 +R29 +R61 +L74 +R2 +R18 +R10 +R72 +L85 +R31 +L46 +R23 +R52 +R8 +R17 +R93 +R7 +R30 +L24 +L6 +R33 +L11 +R70 +L52 +L51 +R11 +R11 +R89 +L57 +L21 +R70 +L92 +L71 +R71 +R67 +R963 +R60 +R13 +R97 +L83 +R6 +R77 +R18 +R6 +L3 +R79 +L31 +R69 +R62 +L21 +L59 +L20 +L33 +L15 +R48 +L69 +R69 +L94 +R10 +L97 +R27 +R63 +R72 +L15 +L7 +L821 +R419 +R80 +L37 +R50 +R31 +L19 +L527 +L764 +R344 +R97 +L912 +L2 +R62 +L54 +R69 +L18 +L77 +L80 +L29 +L777 +L94 +L185 +L152 +R57 +L20 +R25 +L12 +L2 +R89 +L19 +L12 +R31 +R35 +R1 +R64 +L52 +L87 +L69 +L451 +L41 +R55 +L55 +L70 +L390 +L51 +R7 +R4 +L73 +R56 +R17 +R83 +L37 +L176 +R530 +L43 +L51 +R62 +L10 +R43 +L1 +L4 +R4 +L13 +R13 +R53 +L53 +L69 +R63 +R615 +L39 +L98 +L87 +L31 +L42 +R88 +L640 +R40 +L3 +L97 +L78 +L82 +L691 +L6 +R30 +R88 +L561 +R582 +L82 +R71 +R99 +L70 +R172 +L72 +L231 +R31 +R86 +L155 +L31 +R992 +R97 +R65 +R74 +L28 +R20 +L58 +R43 +L45 +L960 +R52 +R48 +L47 +R68 +R79 +R65 +L26 +R68 +R62 +R726 +L769 +R11 +R74 +R53 +R43 +R92 +R88 +R45 +L49 +R65 +R85 +L33 +R78 +R86 +R15 +R15 +L94 +R67 +L9 +L58 +L10 +L42 +L14 +R66 +L15 +R93 +R65 +R86 +R88 +L67 +L51 +L78 +L95 +L83 +R35 +L97 +L30 +L70 +R92 +L73 +R89 +R11 +R10 +L19 +L80 +L41 +R30 +R30 +L73 +R42 +R1 +L20 +R54 +L84 +R6 +R59 +L13 +L23 +R7 +L33 +L18 +R37 +L16 +R24 +L12 +L30 +L10 +L17 +R12 +R11 +L15 +R35 +R42 +R41 +R49 +R20 +L14 +L20 +R38 +R47 +R2 +L40 +R40 +L47 +L46 +L31 +L43 +L31 +L7 +R36 +L25 +R39 +R2 +L45 +R36 +R23 +R1 +L27 +L29 +R41 +R8 +R49 +L12 +L20 +L25 +R16 diff --git a/day1-zig/input/day1_example.txt b/day1-zig/input/day1_example.txt new file mode 100644 index 0000000..53287c7 --- /dev/null +++ b/day1-zig/input/day1_example.txt @@ -0,0 +1,10 @@ +L68 +L30 +R48 +L5 +R60 +L55 +L1 +L99 +R14 +L82 diff --git a/day1-zig/src/main.zig b/day1-zig/src/main.zig new file mode 100644 index 0000000..07c4c68 --- /dev/null +++ b/day1-zig/src/main.zig @@ -0,0 +1,39 @@ +//! By convention, main.zig is where your main function lives in the case that +//! you are building an executable. If you are making a library, the convention +//! is to delete this file and start with root.zig instead. + +pub fn main() !void { + // Prints to stderr (it's a shortcut based on `std.io.getStdErr()`) + std.debug.print("All your {s} are belong to us.\n", .{"codebase"}); + + // stdout is for the actual output of your application, for example if you + // are implementing gzip, then only the compressed bytes should be sent to + // stdout, not any debugging messages. + const stdout_file = std.io.getStdOut().writer(); + var bw = std.io.bufferedWriter(stdout_file); + const stdout = bw.writer(); + + try stdout.print("Run `zig build test` to run the tests.\n", .{}); + + try bw.flush(); // Don't forget to flush! +} + +fn parse(input) + +test "Part 1 sample" { + const input = try std.fs.cwd().readFile("day1_example.txt", .{}); + +} + +test "fuzz example" { + const Context = struct { + fn testOne(context: @This(), input: []const u8) anyerror!void { + _ = context; + // Try passing `--fuzz` to `zig build test` and see if it manages to fail this test case! + try std.testing.expect(!std.mem.eql(u8, "canyoufindme", input)); + } + }; + try std.testing.fuzz(Context{}, Context.testOne, .{}); +} + +const std = @import("std");