Day 1
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/target
|
||||
16
Cargo.lock
generated
Normal file
16
Cargo.lock
generated
Normal file
@@ -0,0 +1,16 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 4
|
||||
|
||||
[[package]]
|
||||
name = "anyhow"
|
||||
version = "1.0.100"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61"
|
||||
|
||||
[[package]]
|
||||
name = "aoc"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
]
|
||||
11
Cargo.toml
Normal file
11
Cargo.toml
Normal file
@@ -0,0 +1,11 @@
|
||||
[package]
|
||||
name = "aoc"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[[bin]]
|
||||
name = "day1"
|
||||
path = "src/day1/main.rs"
|
||||
|
||||
[dependencies]
|
||||
anyhow = "1.0.100"
|
||||
4629
src/day1/day1-act.txt
Normal file
4629
src/day1/day1-act.txt
Normal file
File diff suppressed because it is too large
Load Diff
10
src/day1/day1-test.txt
Normal file
10
src/day1/day1-test.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
L68
|
||||
L30
|
||||
R48
|
||||
L5
|
||||
R60
|
||||
L55
|
||||
L1
|
||||
L99
|
||||
R14
|
||||
L82
|
||||
39
src/day1/main.rs
Normal file
39
src/day1/main.rs
Normal file
@@ -0,0 +1,39 @@
|
||||
use anyhow::Result;
|
||||
use std::{fs, num};
|
||||
|
||||
fn main() -> Result<()> {
|
||||
println!("Hello, world!");
|
||||
|
||||
let (count, extra, _) = fs::read_to_string("src/day1/day1-act.txt")?
|
||||
.split("\n")
|
||||
.filter(|s| s.len() > 0)
|
||||
.fold((0, 0, 50 as i32), |(sum, e, p), s| {
|
||||
let modi = if s.chars().nth(0).unwrap() == 'R' {
|
||||
1
|
||||
} else {
|
||||
-1
|
||||
};
|
||||
let v: i32 = s[1..].parse().unwrap();
|
||||
let mut nv: i32 = p + (v % 100) * modi;
|
||||
let mut extra = v / 100;
|
||||
if nv < 0 {
|
||||
nv = 100 + nv;
|
||||
if p != 0 {
|
||||
extra += 1;
|
||||
}
|
||||
} else if nv == 100 {
|
||||
nv = nv - 100;
|
||||
} else if nv > 100 {
|
||||
nv = nv - 100;
|
||||
if p != 0 {
|
||||
extra += 1;
|
||||
}
|
||||
}
|
||||
println!("{} - {}: {}", s, nv, extra);
|
||||
(sum + (if nv == 0 { 1 } else { 0 }), e + extra, nv)
|
||||
});
|
||||
|
||||
println!("{} and sec {}", count, count + extra);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
3
src/main.rs
Normal file
3
src/main.rs
Normal file
@@ -0,0 +1,3 @@
|
||||
fn main() {
|
||||
println!("Hello, world!");
|
||||
}
|
||||
Reference in New Issue
Block a user