2016/03
This commit is contained in:
4
2016/03/Cargo.lock
generated
Normal file
4
2016/03/Cargo.lock
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
[root]
|
||||||
|
name = "03"
|
||||||
|
version = "0.1.0"
|
||||||
|
|
||||||
6
2016/03/Cargo.toml
Normal file
6
2016/03/Cargo.toml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
[package]
|
||||||
|
name = "03"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["logaritmisk <anders.e.olsson@gmail.com>"]
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
1635
2016/03/input.txt
Normal file
1635
2016/03/input.txt
Normal file
File diff suppressed because it is too large
Load Diff
53
2016/03/src/main.rs
Normal file
53
2016/03/src/main.rs
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
use std::io::{self, BufRead};
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let stdin = io::stdin();
|
||||||
|
|
||||||
|
let input = stdin.lock()
|
||||||
|
.lines()
|
||||||
|
.filter_map(|line| line.ok())
|
||||||
|
.map(|line| {
|
||||||
|
line
|
||||||
|
.split_whitespace()
|
||||||
|
.filter_map(|x| x.parse::<i32>().ok())
|
||||||
|
.collect::<Vec<_>>()
|
||||||
|
})
|
||||||
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
|
let count_h = input
|
||||||
|
.iter()
|
||||||
|
.filter(|x| is_triangle(x[0], x[1], x[2]))
|
||||||
|
.count();
|
||||||
|
|
||||||
|
let count_v = input
|
||||||
|
.chunks(3)
|
||||||
|
.flat_map(|x| {
|
||||||
|
x[0]
|
||||||
|
.iter()
|
||||||
|
.zip(&x[1])
|
||||||
|
.zip(&x[2])
|
||||||
|
.map(|((x, y), z)| [x, y, z])
|
||||||
|
})
|
||||||
|
.filter(|x| is_triangle(*x[0], *x[1], *x[2]))
|
||||||
|
.count();
|
||||||
|
|
||||||
|
println!("count={}", count_h);
|
||||||
|
println!("count={}", count_v);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn is_triangle(a: i32, b: i32, c: i32) -> bool {
|
||||||
|
a + b > c && b + c > a && c + a > b
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::is_triangle;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn example_01() {
|
||||||
|
assert_eq!(false, is_triangle(5, 10, 25));
|
||||||
|
assert_eq!(false, is_triangle(10, 25, 5));
|
||||||
|
assert_eq!(false, is_triangle(25, 10, 5));
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user