summaryrefslogtreecommitdiff
path: root/2024/05
diff options
context:
space:
mode:
Diffstat (limited to '2024/05')
-rwxr-xr-x2024/05/python.py30
-rwxr-xr-x2024/05/raku.raku10
-rw-r--r--2024/05/rust/Cargo.lock7
-rw-r--r--2024/05/rust/Cargo.toml6
-rw-r--r--2024/05/rust/src/main.rs42
5 files changed, 0 insertions, 95 deletions
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<u16> = 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(());
-}