Day 1 Part 1
This commit is contained in:
commit
07e84ae119
4 changed files with 1042 additions and 0 deletions
6
day_1/hint1.txt
Normal file
6
day_1/hint1.txt
Normal file
|
@ -0,0 +1,6 @@
|
|||
3 4
|
||||
4 3
|
||||
2 5
|
||||
1 3
|
||||
3 9
|
||||
3 3
|
1000
day_1/input.txt
Normal file
1000
day_1/input.txt
Normal file
File diff suppressed because it is too large
Load diff
BIN
day_1/part1
Executable file
BIN
day_1/part1
Executable file
Binary file not shown.
36
day_1/part1.rs
Normal file
36
day_1/part1.rs
Normal file
|
@ -0,0 +1,36 @@
|
|||
use std::fs::File;
|
||||
use std::io::{self, BufRead};
|
||||
use std::path::Path;
|
||||
use std::env;
|
||||
|
||||
fn read_lines<P>(filename: P) -> io::Result<io::Lines<io::BufReader<File>>>
|
||||
where P: AsRef<Path>, {
|
||||
let file = File::open(filename)?;
|
||||
Ok(io::BufReader::new(file).lines())
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let mut left_list: Vec<i32> = vec![];
|
||||
let mut right_list: Vec<i32> = vec![];
|
||||
|
||||
let args: Vec<_> = env::args().collect();
|
||||
|
||||
if let Ok(lines) = read_lines(args[1].clone()) {
|
||||
for line in lines.flatten() {
|
||||
let parts = line.split(" ").collect::<Vec<_>>();
|
||||
let lnum = parts[0].parse::<i32>().unwrap();
|
||||
let rnum = parts[1].parse::<i32>().unwrap();
|
||||
left_list.push(lnum);
|
||||
right_list.push(rnum);
|
||||
}
|
||||
left_list.sort();
|
||||
right_list.sort();
|
||||
let mut sum = 0;
|
||||
for (i, left_n) in left_list.iter().enumerate() {
|
||||
let right_n = right_list[i];
|
||||
println!("{} {} {}", i, left_n, right_n);
|
||||
sum += (left_n - right_n).abs();
|
||||
}
|
||||
println!("{}", sum);
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue