From 86bac31392a76da84817eec020d2b84d099b3cc1 Mon Sep 17 00:00:00 2001 From: mhsn Date: Wed, 18 Mar 2026 21:48:13 +0000 Subject: add other challenges support --- 2024/05/python.py | 30 ------------------------------ 2024/05/raku.raku | 10 ---------- 2024/05/rust/Cargo.lock | 7 ------- 2024/05/rust/Cargo.toml | 6 ------ 2024/05/rust/src/main.rs | 42 ------------------------------------------ 5 files changed, 95 deletions(-) delete mode 100755 2024/05/python.py delete mode 100755 2024/05/raku.raku delete mode 100644 2024/05/rust/Cargo.lock delete mode 100644 2024/05/rust/Cargo.toml delete mode 100644 2024/05/rust/src/main.rs (limited to '2024/05') diff --git a/2024/05/python.py b/2024/05/python.py deleted file mode 100755 index 9e81978..0000000 --- a/2024/05/python.py +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env python3 - -from fileinput import input -from functools import cmp_to_key -from itertools import takewhile - -inp = map(str.strip, input()) -ordering = set(takewhile(bool, inp)) -us = list(inp) - - -def cmp(x, y): - return (f"{y}|{x}" in ordering) * 2 - 1 # hehe - - -silver = 0 -gold = 0 - -for u in us: - pre = u.split(",") - post = list(sorted(pre, key=cmp_to_key(cmp))) - - mid = int(post[len(post) // 2]) - if pre == post: - silver += mid - else: - gold += mid - -print("silver:", silver) -print("gold:", gold) diff --git a/2024/05/raku.raku b/2024/05/raku.raku deleted file mode 100755 index a13cf5a..0000000 --- a/2024/05/raku.raku +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env raku - -my (@rs, @us) := slurp.split("\n\n")>>.lines; - -sub mid(@u) { - my @s = @u.sort({ "$^a|$^b" !(elem) @rs }); - return (@u Z== @s).all.so ?? ($_, 0) !! (0, $_) with @s[@s/2]; -} - -(("silver: ", "gold: ") Z~ [Z+] @us>>.split(",").map(&mid)).map(&say); diff --git a/2024/05/rust/Cargo.lock b/2024/05/rust/Cargo.lock deleted file mode 100644 index 5ae963b..0000000 --- a/2024/05/rust/Cargo.lock +++ /dev/null @@ -1,7 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "aoc_2024-05" -version = "0.1.0" diff --git a/2024/05/rust/Cargo.toml b/2024/05/rust/Cargo.toml deleted file mode 100644 index de0fa13..0000000 --- a/2024/05/rust/Cargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "aoc_2024-05" -version = "0.1.0" -edition = "2021" - -[dependencies] diff --git a/2024/05/rust/src/main.rs b/2024/05/rust/src/main.rs deleted file mode 100644 index 0db788d..0000000 --- a/2024/05/rust/src/main.rs +++ /dev/null @@ -1,42 +0,0 @@ -#![feature(slice_split_once)] - -use std::cmp::Ordering::{Greater, Less}; -use std::collections::HashSet; -use std::io; - -fn main() -> io::Result<()> { - let mut lines = io::stdin().lines().flatten(); - let mut set = HashSet::<(u16, u16)>::new(); - - while let Some(s) = lines.next() { - if let Some((a, b)) = s.split_once('|') { - set.insert((a.parse().unwrap(), b.parse().unwrap())); - } else { - break; - } - } - - let mut silver: usize = 0; - let mut gold: usize = 0; - - for line in lines { - let mut nums: Vec = line.split(',').map(|n| n.parse().unwrap()).collect(); - let mid = nums.len() / 2; - - if nums.is_sorted_by(|&a, &b| set.contains(&(a, b))) { - silver += nums[mid] as usize; - } else { - gold += *nums - .select_nth_unstable_by(mid, |&a, &b| match set.contains(&(a, b)) { - true => Less, - false => Greater, - }) - .1 as usize; - } - } - - println!("silver: {silver}"); - println!("gold: {gold}"); - - return Ok(()); -} -- cgit v1.2.3