add 2022 day1 (p1 and 2) and 2024 day1 (p1 and 2)
This commit is contained in:
parent
5b7a6edbfb
commit
4f75e45108
16
2022/day1/Cargo.lock
generated
Normal file
16
2022/day1/Cargo.lock
generated
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# This file is automatically @generated by Cargo.
|
||||||
|
# It is not intended for manual editing.
|
||||||
|
version = 3
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "day1"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libc"
|
||||||
|
version = "0.2.167"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc"
|
7
2022/day1/Cargo.toml
Normal file
7
2022/day1/Cargo.toml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[package]
|
||||||
|
name = "day1"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = "0.2.167"
|
2236
2022/day1/src/input.txt
Normal file
2236
2022/day1/src/input.txt
Normal file
File diff suppressed because it is too large
Load Diff
44
2022/day1/src/main.rs
Normal file
44
2022/day1/src/main.rs
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
use std::io::{stdin, Read};
|
||||||
|
use libc::{clock_gettime, timespec, CLOCK_PROCESS_CPUTIME_ID};
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
|
||||||
|
let mut biggest = 0;
|
||||||
|
let mut data = String::new();
|
||||||
|
stdin().read_to_string(&mut data).unwrap();
|
||||||
|
let mut begin = timespec {
|
||||||
|
tv_sec: 0,
|
||||||
|
tv_nsec: 0,
|
||||||
|
};
|
||||||
|
unsafe {
|
||||||
|
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &mut begin);
|
||||||
|
};
|
||||||
|
|
||||||
|
let calories = data.replace('\n', " ");
|
||||||
|
let lines = calories.split(" ");
|
||||||
|
for line in lines {
|
||||||
|
let mut cal_count = vec![];
|
||||||
|
let nums = line.split_whitespace();
|
||||||
|
for num in nums {
|
||||||
|
let num: i32 = num.trim().parse().unwrap();
|
||||||
|
cal_count.push(num);
|
||||||
|
}
|
||||||
|
let total_sum: i32 = cal_count.iter().sum();
|
||||||
|
if total_sum > biggest {
|
||||||
|
biggest = total_sum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut end = timespec {
|
||||||
|
tv_sec: 0,
|
||||||
|
tv_nsec: 0,
|
||||||
|
};
|
||||||
|
unsafe {
|
||||||
|
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &mut end);
|
||||||
|
};
|
||||||
|
println!("{biggest:?}");
|
||||||
|
println!(
|
||||||
|
"time: {:.6}ms",
|
||||||
|
(end.tv_nsec - begin.tv_nsec) as f32 / 1000.0 / 1000.0
|
||||||
|
);
|
||||||
|
}
|
16
2022/day1p2/Cargo.lock
generated
Normal file
16
2022/day1p2/Cargo.lock
generated
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# This file is automatically @generated by Cargo.
|
||||||
|
# It is not intended for manual editing.
|
||||||
|
version = 3
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "day1p2"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libc"
|
||||||
|
version = "0.2.167"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc"
|
7
2022/day1p2/Cargo.toml
Normal file
7
2022/day1p2/Cargo.toml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[package]
|
||||||
|
name = "day1p2"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = "0.2.167"
|
2236
2022/day1p2/src/input.txt
Normal file
2236
2022/day1p2/src/input.txt
Normal file
File diff suppressed because it is too large
Load Diff
45
2022/day1p2/src/main.rs
Normal file
45
2022/day1p2/src/main.rs
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
use std::io::{stdin, Read};
|
||||||
|
use libc::{clock_gettime, timespec, CLOCK_PROCESS_CPUTIME_ID};
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
|
||||||
|
let mut data = String::new();
|
||||||
|
stdin().read_to_string(&mut data).unwrap();
|
||||||
|
let mut begin = timespec {
|
||||||
|
tv_sec: 0,
|
||||||
|
tv_nsec: 0,
|
||||||
|
};
|
||||||
|
unsafe {
|
||||||
|
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &mut begin);
|
||||||
|
};
|
||||||
|
|
||||||
|
let calories = data.replace('\n', " ");
|
||||||
|
let lines = calories.split(" ");
|
||||||
|
let mut all_cals = vec![];
|
||||||
|
for line in lines {
|
||||||
|
let mut cal_count = vec![];
|
||||||
|
let nums = line.split_whitespace();
|
||||||
|
for num in nums {
|
||||||
|
let num: i32 = num.trim().parse().unwrap();
|
||||||
|
cal_count.push(num);
|
||||||
|
}
|
||||||
|
let total_sum: i32 = cal_count.iter().sum();
|
||||||
|
all_cals.push(total_sum);
|
||||||
|
}
|
||||||
|
all_cals.sort_unstable();
|
||||||
|
all_cals.reverse();
|
||||||
|
let sum = all_cals[0] + all_cals[1] + all_cals[2];
|
||||||
|
|
||||||
|
let mut end = timespec {
|
||||||
|
tv_sec: 0,
|
||||||
|
tv_nsec: 0,
|
||||||
|
};
|
||||||
|
unsafe {
|
||||||
|
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &mut end);
|
||||||
|
};
|
||||||
|
println!("{sum:?}");
|
||||||
|
println!(
|
||||||
|
"time: {:.6}ms",
|
||||||
|
(end.tv_nsec - begin.tv_nsec) as f32 / 1000.0 / 1000.0
|
||||||
|
);
|
||||||
|
}
|
@ -42,7 +42,9 @@ fn main() {
|
|||||||
let blue_largest = blue.iter().max();
|
let blue_largest = blue.iter().max();
|
||||||
let green_largest = green.iter().max();
|
let green_largest = green.iter().max();
|
||||||
let temp = red_largest.unwrap() * blue_largest.unwrap() * green_largest.unwrap();
|
let temp = red_largest.unwrap() * blue_largest.unwrap() * green_largest.unwrap();
|
||||||
|
let before_sum = sum;
|
||||||
sum += temp;
|
sum += temp;
|
||||||
|
println!("{red_largest:?} * {blue_largest:?} * {green_largest:?} + {before_sum:?} = {sum:?}")
|
||||||
}
|
}
|
||||||
println!("{sum}");
|
println!("{sum}");
|
||||||
|
|
||||||
|
16
2024/day1/Cargo.lock
generated
Normal file
16
2024/day1/Cargo.lock
generated
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# This file is automatically @generated by Cargo.
|
||||||
|
# It is not intended for manual editing.
|
||||||
|
version = 3
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "day1"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libc"
|
||||||
|
version = "0.2.167"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc"
|
7
2024/day1/Cargo.toml
Normal file
7
2024/day1/Cargo.toml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[package]
|
||||||
|
name = "day1"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = "0.2.167"
|
1000
2024/day1/src/input.txt
Normal file
1000
2024/day1/src/input.txt
Normal file
File diff suppressed because it is too large
Load Diff
47
2024/day1/src/main.rs
Normal file
47
2024/day1/src/main.rs
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
use std::io::{stdin, Read};
|
||||||
|
use libc::{clock_gettime, timespec, CLOCK_PROCESS_CPUTIME_ID};
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let mut data = String::new();
|
||||||
|
stdin().read_to_string(&mut data).unwrap();
|
||||||
|
|
||||||
|
let mut begin = timespec {
|
||||||
|
tv_sec: 0,
|
||||||
|
tv_nsec: 0,
|
||||||
|
};
|
||||||
|
unsafe {
|
||||||
|
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &mut begin);
|
||||||
|
};
|
||||||
|
|
||||||
|
let mut num1 = vec![];
|
||||||
|
let mut num2 = vec![];
|
||||||
|
|
||||||
|
for line in data.lines() {
|
||||||
|
let numbers: Vec<&str> = line.split(" ").collect();
|
||||||
|
let num11: i32 = numbers[0].parse().unwrap();
|
||||||
|
let num22: i32 = numbers[1].parse().unwrap();
|
||||||
|
num1.push(num11);
|
||||||
|
num2.push(num22);
|
||||||
|
}
|
||||||
|
num1.sort_unstable();
|
||||||
|
num2.sort_unstable();
|
||||||
|
|
||||||
|
let mut sum = 0;
|
||||||
|
for i in 0..num1.len() {
|
||||||
|
let num_sum = num1[i].abs_diff(num2[i]);
|
||||||
|
sum += num_sum;
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut end = timespec {
|
||||||
|
tv_sec: 0,
|
||||||
|
tv_nsec: 0,
|
||||||
|
};
|
||||||
|
unsafe {
|
||||||
|
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &mut end);
|
||||||
|
};
|
||||||
|
println!("{sum:?}");
|
||||||
|
println!(
|
||||||
|
"time: {:.6}ms",
|
||||||
|
(end.tv_nsec - begin.tv_nsec) as f32 / 1000.0 / 1000.0
|
||||||
|
);
|
||||||
|
}
|
16
2024/day1p2/Cargo.lock
generated
Normal file
16
2024/day1p2/Cargo.lock
generated
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# This file is automatically @generated by Cargo.
|
||||||
|
# It is not intended for manual editing.
|
||||||
|
version = 3
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "day1p2"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libc"
|
||||||
|
version = "0.2.167"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc"
|
7
2024/day1p2/Cargo.toml
Normal file
7
2024/day1p2/Cargo.toml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[package]
|
||||||
|
name = "day1p2"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = "0.2.167"
|
1000
2024/day1p2/src/input.txt
Normal file
1000
2024/day1p2/src/input.txt
Normal file
File diff suppressed because it is too large
Load Diff
50
2024/day1p2/src/main.rs
Normal file
50
2024/day1p2/src/main.rs
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
use std::io::{stdin, Read};
|
||||||
|
use libc::{clock_gettime, timespec, CLOCK_PROCESS_CPUTIME_ID};
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let mut data = String::new();
|
||||||
|
stdin().read_to_string(&mut data).unwrap();
|
||||||
|
|
||||||
|
let mut begin = timespec {
|
||||||
|
tv_sec: 0,
|
||||||
|
tv_nsec: 0,
|
||||||
|
};
|
||||||
|
unsafe {
|
||||||
|
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &mut begin);
|
||||||
|
};
|
||||||
|
|
||||||
|
let mut num1 = vec![];
|
||||||
|
let mut num2 = vec![];
|
||||||
|
|
||||||
|
for line in data.lines() {
|
||||||
|
let numbers: Vec<&str> = line.split(" ").collect();
|
||||||
|
let num11: i32 = numbers[0].parse().unwrap();
|
||||||
|
let num22: i32 = numbers[1].parse().unwrap();
|
||||||
|
num1.push(num11);
|
||||||
|
num2.push(num22);
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut sum = 0;
|
||||||
|
|
||||||
|
for i in num1 {
|
||||||
|
let mut count = 0;
|
||||||
|
for num in &num2 {
|
||||||
|
if i == *num {
|
||||||
|
count += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sum += i * count;
|
||||||
|
}
|
||||||
|
println!("{sum:?}");
|
||||||
|
let mut end = timespec {
|
||||||
|
tv_sec: 0,
|
||||||
|
tv_nsec: 0,
|
||||||
|
};
|
||||||
|
unsafe {
|
||||||
|
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &mut end);
|
||||||
|
};
|
||||||
|
println!(
|
||||||
|
"time: {:.6}ms",
|
||||||
|
(end.tv_nsec - begin.tv_nsec) as f32 / 1000.0 / 1000.0
|
||||||
|
);
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user