aoc24: day01 update to zip
Include Linux command stuff to use clang compiler.
This commit is contained in:
@@ -33,6 +33,12 @@ Symlink `compile_commands.json` to root directory for `ccls`/`clangd`.
|
|||||||
ln -sfn ./build/compile_commands.json .
|
ln -sfn ./build/compile_commands.json .
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Linux (use clang)**
|
||||||
|
|
||||||
|
```sh
|
||||||
|
CC=clang CXX=clang++ cmake -S . -Bbuild -GNinja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-stdlib=libc++ -I$HOME/.local/include/c++/v1" -DCMAKE_EXE_LINKER_FLAGS="-stdlib=libc++ -fuse-ld=lld -L$HOME/.local/lib" -DCMAKE_SHARED_LINKER_FLAGS="-stdlib=libc++ -fuse-ld=lld -L$HOME/.local/lib"
|
||||||
|
```
|
||||||
|
|
||||||
**Windows (requires admin)**
|
**Windows (requires admin)**
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
|||||||
9
aoc.cpp
9
aoc.cpp
@@ -48,11 +48,12 @@ auto main([[maybe_unused]]int argc, [[maybe_unused]]char const* argv[]) -> int {
|
|||||||
std::sort(std::begin(a), std::end(a));
|
std::sort(std::begin(a), std::end(a));
|
||||||
std::sort(std::begin(b), std::end(b));
|
std::sort(std::begin(b), std::end(b));
|
||||||
|
|
||||||
auto diff_view = std::views::zip_transform([](auto a, auto b) {
|
auto diff_view = std::views::zip(a, b) | std::views::transform([](auto const& p) {
|
||||||
return a > b ? a - b : b - a;
|
auto const [x, y] = p;
|
||||||
}, a, b);
|
return x > y ? x - y : y - x;
|
||||||
|
});
|
||||||
auto const sum = std::accumulate(std::begin(diff_view), std::end(diff_view), 0);
|
auto const sum = std::accumulate(std::begin(diff_view), std::end(diff_view), 0);
|
||||||
|
|
||||||
fmt::print("Part A: {}\n", std::abs(sum));
|
fmt::print("Part A: {}\n", std::abs(sum));
|
||||||
|
|
||||||
auto values = a | std::views::transform([&b](auto v) {
|
auto values = a | std::views::transform([&b](auto v) {
|
||||||
|
|||||||
Reference in New Issue
Block a user