borowing nonsense

This commit is contained in:
Acvaxoort 2023-12-04 18:46:34 +01:00
parent b34f551464
commit 31b15680b9

View File

@ -1,5 +1,4 @@
use std::fs::read_to_string; use std::fs::read_to_string;
use std::cmp;
fn main() { fn main() {
enum ParsingState { enum ParsingState {
@ -8,7 +7,6 @@ fn main() {
WinningNumbers, WinningNumbers,
PlayerNumbers, PlayerNumbers,
} }
#[derive(Copy, Clone)]
struct Card { struct Card {
amount: i32, amount: i32,
winning: i32, winning: i32,
@ -49,16 +47,18 @@ fn main() {
} }
} }
sum1 += score; sum1 += score;
cards.push(Card { amount: 1, winning: num_winning }) cards.push(Card { amount: 1, winning: num_winning });
} }
let cards_len = cards.len(); let cards_len = cards.len();
for i in 0..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; sum2 += card.amount;
for j in i+1 .. cmp::min(i + 1 + card.winning as usize, cards_len) { for j in 0 .. card.winning as usize {
cards[j].amount += card.amount; slice2[j].amount += card.amount;
} }
} }
println!("Sum1: {}", sum1); println!("Sum1: {}", sum1);
println!("Sum2: {}", sum2); println!("Sum2: {}", sum2);
} }