summaryrefslogtreecommitdiff
path: root/2023
diff options
context:
space:
mode:
authornekineki <nekineki@nekineki.net>2023-12-06 18:23:10 +0100
committernekineki <nekineki@nekineki.net>2023-12-06 18:23:10 +0100
commit7c32897a8feb007e998be6a8c3c37a02f9088f51 (patch)
tree19dce629fbbe7a77f05552a9aa3e073a11df6130 /2023
parent91b9f9c6b077e367076d5e637ebcefbba27c5487 (diff)
day06 quadratic equation
Diffstat (limited to '2023')
-rw-r--r--2023/day06.rs17
1 files changed, 7 insertions, 10 deletions
diff --git a/2023/day06.rs b/2023/day06.rs
index 92a631a..839c798 100644
--- a/2023/day06.rs
+++ b/2023/day06.rs
@@ -1,17 +1,14 @@
-#![allow(dead_code)]
-#![allow(unused_variables)]
-#![allow(unused_mut)]
+#![allow(non_snake_case)]
use std::fs::File;
use std::io::Read;
fn get_opts(t: u64, d: u64) -> u64 {
- let mut opts = 0;
- for wait in 0..t {
- if wait * (t - wait) > d {
- opts += 1;
- }
- }
- return opts;
+ let t = t as f64;
+ let d = d as f64;
+ let D = f64::sqrt((t * t - 4. * d) as f64);
+ let x1 = ((-t - D) / 2.).floor();
+ let x2 = ((-t + D) / 2.).floor();
+ (x2 - x1) as u64
}
fn main() {