blob: 568546c991010648d658db7b6e2abb3260b82ee1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
mod common;
use common::*;
fn get_rep_val(rucksack: &[u8]) -> i64 {
let mut seen = [false; 256];
let mid = rucksack.len()/2;
for i in 0..mid {
seen[rucksack[i] as usize] = true;
}
for i in mid..rucksack.len() {
if seen[rucksack[i] as usize] {
return value(rucksack[i] as char);
}
}
panic!("Could not find repeated char");
}
fn main() {
let mut sum = 0;
let mut line = String::new();
while std::io::stdin().read_line(&mut line).unwrap() > 0 {
sum += get_rep_val(line.as_bytes());
line.clear();
}
println!("{sum}");
}
|