Problem:
Score : 100 points

Problem Statement

You are given two positive integers a and b.
Let x be the average of a and b.
Print x rounded up to the nearest integer.

Constraints

a and b are integers.

1 \leq a, b \leq 100

Input

Input is given from Standard Input in the following format:

a b

Output

Print x rounded up to the nearest integer.

Sample Input 1

1 3

Sample Output 1

2

The average of 1 and 3 is 2.0, and it will be rounded up to the nearest integer, 2.

Sample Input 2

7 4

Sample Output 2

6

The average of 7 and 4 is 5.5, and it will be rounded up to the nearest integer, 6.

Sample Input 3

5 5

Sample Output 3

5

Solution in Rust (1.15.1) (judge verdict: Runtime Error)

use std::io;
use std::collections::HashMap;

fn read_line()  -> String {
    let mut buffer = String::new();
    io::stdin().read_line(&mut buffer).expect("Couldn't read line");
    buffer.trim().to_owned()
}

fn main() {
    let _size: usize = read_line().parse().unwrap();
    let input: String = read_line();
    let vec: Vec<i32> = input.split_whitespace()
        .map(|n| n.parse().unwrap())
        .collect();
    let mut counter: HashMap<i32, i32> = HashMap::new();
    let mut should_remove: i32 = 0;

    for n in vec.iter() {
        let num = counter.entry(*n).or_insert(0);
        *num += 1;
    }

    for (key, val) in counter.iter() {
        if key > val {
            should_remove += *val;
        } else if key < val {
            should_remove += *val - *key;
        }
    }

    print!("{}", should_remove);
}