summaryrefslogtreecommitdiff
path: root/2024/05/rust/src/main.rs
diff options
context:
space:
mode:
authormhsn <mail@mhsn.net>2026-03-18 21:48:13 +0000
committermhsn <mail@mhsn.net>2026-03-18 21:48:13 +0000
commit86bac31392a76da84817eec020d2b84d099b3cc1 (patch)
treee2ee52db59b86b914d5b4bcceb19c9b5d899fff4 /2024/05/rust/src/main.rs
parent62fe361fc42dea75deaf7ac31c0ba6ba80e26a9c (diff)
downloadpuzzles-86bac31392a76da84817eec020d2b84d099b3cc1.tar.gz
puzzles-86bac31392a76da84817eec020d2b84d099b3cc1.zip
add other challenges supportHEADmaster
Diffstat (limited to '2024/05/rust/src/main.rs')
-rw-r--r--2024/05/rust/src/main.rs42
1 files changed, 0 insertions, 42 deletions
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(());
-}