36 lines
883 B
Rust
36 lines
883 B
Rust
const INPUT: &str = include_str!("../../data/day1");
|
|
|
|
fn main() {
|
|
let expenses: Vec<_> = INPUT.split_whitespace().map(|s| s.parse::<u32>().unwrap()).collect();
|
|
'outer: for (pos, &exp1) in expenses.iter().enumerate() {
|
|
for &exp2 in expenses[pos+1..].iter() {
|
|
if exp1 + exp2 == 2020 {
|
|
println!(
|
|
"Found: {exp1} + {exp2} = 2020; {exp1} * {exp2} = {}",
|
|
exp1 * exp2,
|
|
exp1 = exp1,
|
|
exp2 = exp2,
|
|
);
|
|
break 'outer;
|
|
}
|
|
}
|
|
}
|
|
|
|
'outer2: for (pos, &exp1) in expenses.iter().enumerate() {
|
|
for (pos2, &exp2) in expenses[pos+1..].iter().enumerate() {
|
|
for &exp3 in expenses[pos2+1..].iter() {
|
|
if exp1 + exp2 + exp3 == 2020 {
|
|
println!(
|
|
"Found: {exp1} + {exp2} + {exp3} = 2020; {exp1} * {exp2} * {exp3} = {}",
|
|
exp1 * exp2 * exp3,
|
|
exp1 = exp1,
|
|
exp2 = exp2,
|
|
exp3 = exp3,
|
|
);
|
|
break 'outer2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|