From 06a24f45a2cb811aaf6b522187d25042ca685d45 Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Mon, 11 Nov 2024 20:56:54 +0100 Subject: aoc 2015, day04 --- 2015/src/day04.cpp | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ makefile | 5 ++++- 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 2015/src/day04.cpp diff --git a/2015/src/day04.cpp b/2015/src/day04.cpp new file mode 100644 index 0000000..bc24177 --- /dev/null +++ b/2015/src/day04.cpp @@ -0,0 +1,52 @@ +// Standard C++ +#include +#include +#include +#include + +// Standard C +#include + +// System +#include + +using namespace std; + +void +brute_force(string_view puzzle, size_t length) +{ + array digest{}; + + string input; + for ( unsigned long counter = 0;; ++counter ) { + input = puzzle; + input += to_string(counter); + MD5Data(input.data(), input.size(), digest.data()); + + if ( memcmp(digest.data(), "00000000000", length) == 0 ) { + cout << digest.data() << ": " << counter << endl; + return; + } + } +} + +void +part1(string_view puzzle) +{ + brute_force(puzzle, 5); +} + +void +part2(string_view puzzle) +{ + brute_force(puzzle, 6); +} + +int +main() +{ + string puzzle = "yzbqklnj"; + + part1(puzzle); + part2(puzzle); +} diff --git a/makefile b/makefile index d88478f..0c313e7 100644 --- a/makefile +++ b/makefile @@ -12,6 +12,9 @@ all: $(patsubst 2015/src/%.cpp,2015/bin/%,$(wildcard 2015/src/*.cpp)) \ 2015/bin/%: 2015/src/%.cpp | 2015/bin c++ $(CPPFLAGS) $^ -o $@ +2015/bin/day04: 2015/src/day04.cpp | 2015/bin + c++ $(CPPFLAGS) $^ -lmd -o $@ + # 2020 2020/bin/%: 2020/src/%.cpp | 2020/bin c++ $(CPPFLAGS) $^ -o $@ @@ -28,6 +31,6 @@ all: $(patsubst 2015/src/%.cpp,2015/bin/%,$(wildcard 2015/src/*.cpp)) \ c++ $(CPPFLAGS) -Wno-sign-conversion -I/usr/local/include $^ -L/usr/local/lib -lz3 -o $@ clean: - rm -rf 2020/bin 2022/bin 2023/bin + rm -rf 2015/bin 2020/bin 2022/bin 2023/bin .PHONY: all clean -- cgit v1.3