From 31b15680b9666e5cca9ba89b50677145a9b91f81 Mon Sep 17 00:00:00 2001 From: Acvaxoort Date: Mon, 4 Dec 2023 18:46:34 +0100 Subject: [PATCH] borowing nonsense --- day4/src/main.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/day4/src/main.rs b/day4/src/main.rs index ff448bd..645235d 100644 --- a/day4/src/main.rs +++ b/day4/src/main.rs @@ -1,5 +1,4 @@ use std::fs::read_to_string; -use std::cmp; fn main() { enum ParsingState { @@ -8,7 +7,6 @@ fn main() { WinningNumbers, PlayerNumbers, } - #[derive(Copy, Clone)] struct Card { amount: i32, winning: i32, @@ -49,16 +47,18 @@ fn main() { } } sum1 += score; - cards.push(Card { amount: 1, winning: num_winning }) + cards.push(Card { amount: 1, winning: num_winning }); } let cards_len = cards.len(); for i in 0..cards_len { - let card = cards[i]; + let (slice1, slice2) = cards.split_at_mut(i + 1); + let card = &slice1[i]; sum2 += card.amount; - for j in i+1 .. cmp::min(i + 1 + card.winning as usize, cards_len) { - cards[j].amount += card.amount; + for j in 0 .. card.winning as usize { + slice2[j].amount += card.amount; } } + println!("Sum1: {}", sum1); println!("Sum2: {}", sum2); }