aboutsummaryrefslogtreecommitdiff
path: root/2022/03/a.rs
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}");
}

Generated with cgit - Back to sebastiano.tronto.net