Files
adventofcode/2016/15/src/main.rs
2016-12-20 07:30:42 +01:00

54 lines
881 B
Rust

use std::usize;
pub fn calculate_time(discs: &Vec<(usize, usize)>) -> Result<usize, ()> {
'main: for t in 0..usize::MAX {
for (i, &(p, m)) in discs.iter().enumerate() {
if (t + i + 1 + p) % m != 0 {
continue 'main;
}
}
return Ok(t);
}
Err(())
}
fn main() {
let time_1 = calculate_time(&vec![
(2, 5),
(7, 13),
(10, 17),
(2, 3),
(9, 19),
(0, 7)
]);
println!("time_1={:?}", time_1);
let time_2 = calculate_time(&vec![
(2, 5),
(7, 13),
(10, 17),
(2, 3),
(9, 19),
(0, 7),
(0, 11)
]);
println!("time_2={:?}", time_2);
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn example_01() {
assert_eq!(Ok(5), calculate_time(&vec![(4, 5), (1, 2)]));
}
}