aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksa Vuckovic <aleksa@vuckovic.cc>2023-12-10 01:01:52 +0100
committerAleksa Vuckovic <aleksa@vuckovic.cc>2023-12-10 01:01:52 +0100
commit261fccb18f48f5a058e8d5487cab252b4727ba36 (patch)
treec9096bb69520555ed6ce79c0cc8356bd91062b8b /src
parent023e428b2669b13b769a946341c08f1a8006a31d (diff)
day9
Diffstat (limited to 'src')
-rw-r--r--src/day9pt1.rs39
-rw-r--r--src/day9pt2.rs39
-rw-r--r--src/main.rs8
3 files changed, 82 insertions, 4 deletions
diff --git a/src/day9pt1.rs b/src/day9pt1.rs
new file mode 100644
index 0000000..fa6b18f
--- /dev/null
+++ b/src/day9pt1.rs
@@ -0,0 +1,39 @@
+pub fn main() {
+ let txt = std::fs::read_to_string("./input/day9.txt").unwrap();
+ let mut sum: i64 = 0;
+
+ for line in txt.lines() {
+ let mut razlike_all = vec![];
+ let mut razlike = vec![];
+ let mut brojevi: Vec<i64> = line.split(" ").map(|s| s.parse::<i64>().unwrap()).collect();
+
+ razlike_all.push(brojevi.clone());
+ while !brojevi.is_empty() {
+ let mut ind: bool = true;
+ for i in 0..brojevi.len() {
+ if brojevi[i] != 0 {
+ ind = false;
+ }
+ }
+ if ind {
+ break;
+ }
+
+ for i in 0..brojevi.len() - 1 {
+ razlike.push(brojevi[i + 1] - brojevi[i]);
+ }
+ razlike_all.push(razlike.clone());
+ brojevi = razlike.clone();
+ razlike.clear();
+ }
+
+ let mut sl: i64 = 0;
+ for i in razlike_all {
+ sl += i[i.len() - 1] as i64;
+ }
+
+ sum += sl;
+ }
+
+ println!("{}", sum);
+}
diff --git a/src/day9pt2.rs b/src/day9pt2.rs
new file mode 100644
index 0000000..67324ea
--- /dev/null
+++ b/src/day9pt2.rs
@@ -0,0 +1,39 @@
+pub fn main() {
+ let txt = std::fs::read_to_string("./input/day9.txt").unwrap();
+ let mut sum: i64 = 0;
+
+ for line in txt.lines() {
+ let mut razlike_all = vec![];
+ let mut razlike = vec![];
+ let mut brojevi: Vec<i64> = line.split(" ").map(|s| s.parse::<i64>().unwrap()).collect();
+
+ razlike_all.push(brojevi.clone());
+ while !brojevi.is_empty() {
+ let mut ind: bool = true;
+ for i in 0..brojevi.len() {
+ if brojevi[i] != 0 {
+ ind = false;
+ }
+ }
+ if ind {
+ break;
+ }
+
+ for i in 0..brojevi.len() - 1 {
+ razlike.push(brojevi[i + 1] - brojevi[i]);
+ }
+ razlike_all.push(razlike.clone());
+ brojevi = razlike.clone();
+ razlike.clear();
+ }
+
+ let mut trn: i64 = 0;
+ for i in 0..razlike_all.len() {
+ trn = razlike_all[razlike_all.len() - 1 - i][0] as i64 - trn;
+ }
+
+ sum += trn;
+ }
+
+ println!("{}", sum);
+}
diff --git a/src/main.rs b/src/main.rs
index 1749ed4..3f23276 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,7 +1,7 @@
-mod day8pt1;
-mod day8pt2;
+mod day9pt1;
+mod day9pt2;
fn main() {
- day8pt1::main();
- day8pt2::main();
+ day9pt1::main();
+ day9pt2::main();
}