43 lines
1.0 KiB
Rust
43 lines
1.0 KiB
Rust
use std::io::BufRead;
|
|
|
|
pub fn part1<F: BufRead> (input: F) {
|
|
let input: Vec<_> = input.lines()
|
|
.filter_map(|line| line.unwrap().parse::<i32>().ok())
|
|
.collect();
|
|
|
|
let input_len = input.len() - 1;
|
|
for i in 0..input_len {
|
|
for j in i..input_len {
|
|
if input[i] + input[j] == 2020 {
|
|
println!("{}", input[i] * input[j]);
|
|
return
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
pub fn part2<F: BufRead> (input: F) {
|
|
let input: Vec<_>= input.lines()
|
|
.filter_map(|line| line.unwrap().parse::<i32>().ok())
|
|
.collect();
|
|
|
|
let input_len = input.len() - 1;
|
|
for i in 0..input_len {
|
|
for j in i..input_len {
|
|
if input[i] + input[j] > 2020 {
|
|
continue;
|
|
} else {
|
|
for k in j..input_len {
|
|
if input[i] + input[j] + input[k] == 2020 {
|
|
println!("{}", input[i] * input[j] * input[k] );
|
|
return
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
}
|