34 lines
677 B
Rust
34 lines
677 B
Rust
|
use std::env;
|
||
|
use std::fs::File;
|
||
|
use std::io::BufReader;
|
||
|
use std::io::BufRead;
|
||
|
|
||
|
fn score(line: String) -> i64 {
|
||
|
match line.trim() {
|
||
|
"A X" => 1 + 3,
|
||
|
"A Y" => 2 + 6,
|
||
|
"A Z" => 3 + 0,
|
||
|
"B X" => 1 + 0,
|
||
|
"B Y" => 2 + 3,
|
||
|
"B Z" => 3 + 6,
|
||
|
"C X" => 1 + 6,
|
||
|
"C Y" => 2 + 0,
|
||
|
"C Z" => 3 + 3,
|
||
|
_other => 0,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
let args: Vec<String> = env::args().collect();
|
||
|
let input = &args[1];
|
||
|
let reader = BufReader::new(File::open(input).expect("where file?"));
|
||
|
|
||
|
let mut sum = 0;
|
||
|
for line in reader.lines() {
|
||
|
sum += score(line.unwrap());
|
||
|
}
|
||
|
|
||
|
println!("Sum: {}", sum);
|
||
|
}
|
||
|
|