blob: 02a3151ebc37bd004cd4b9ce6a26212ee6d64f12 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
use std::fs;
use std::process;
fn main() {
let raw = fs::read_to_string("input.txt").unwrap_or_else(|err| {
println!("Failed to open file. {}", err);
process::exit(1);
} );
let nums : Vec<i32> = raw.lines()
.map(|x| x.parse().unwrap())
.collect();
let res : Vec<i32> = nums.iter()
.map(|&x| nums.iter().map(move |&y| (x, y)))
.flatten()
.filter(|(x, y)| x+y == 2020)
.map(|(x, y)| x*y)
.collect();
println!("x+y = 2020, x*y = {}", res.first().unwrap());
}
|