day 1 optimizations, day 2 setup

main
Ray Slakinski 2020-12-01 14:33:20 -05:00
parent 188247651e
commit d8dbdca446
3 changed files with 33 additions and 19 deletions

View File

@ -1,33 +1,35 @@
use std::io::Read;
fn main() {
let mut file = std::fs::File::open("input1").unwrap();
let mut contents = String::new();
file.read_to_string(&mut contents).unwrap();
// let mut file = std::fs::File::open("input1").unwrap();
// let mut contents = String::new();
// file.read_to_string(&mut contents).unwrap();
let mut v: Vec<i32> = Vec::new();
let contents = std::fs::read_to_string("input1").unwrap();
for s in contents.lines() {
v.push(s.parse::<i32>().unwrap());
}
v.sort();
let v2 = v.to_vec();
for n in v.iter() {
for n2 in v2.iter() {
let val = n + n2;
if val == 2020 {
print!("{} + {} = {}\n", n, n2, val);
print!("{} * {} = {}\n", n, n2, n * n2);
}
let k = 2020 - n;
if v.contains(&k) {
print!("{} + {} = {}\n", n, k, n + k);
print!("{} * {} = {}\n", n, k, n * k);
break;
}
}
let v3 = v.to_vec();
let mut found = false;
for n in v.iter() {
for n2 in v2.iter() {
for n3 in v3.iter() {
let val = n + n2 + n3;
if val == 2020 {
print!("{} + {} + {} = {}\n", n, n2, n3, val);
print!("{} * {} * {} = {}\n", n, n2, n3, n * n2 * n3);
}
for n2 in v.iter() {
let k = 2020 - n - n2;
if v.contains(&n) && v.contains(n2) && v.contains(&k) {
print!("{} + {} + {} = {}\n", n, n2, k, n + n2 + k);
print!("{} * {} * {} = {}\n", n, n2, k, n * n2 * k);
found = true;
break;
}
}
if found {
break;
}
}
}

View File

@ -0,0 +1,9 @@
[package]
name = "day_2"
version = "0.1.0"
authors = ["Ray Slakinski <ray.slakinski@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

View File

@ -0,0 +1,3 @@
fn main() {
println!("Hello, world!");
}