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: Wrong Answer)

extern crate core;

use std::io::{self, Read};
use std::collections::HashMap;

fn main() {
    let mut input = String::new();
    io::stdin().read_to_string(&mut input).unwrap();
    let output = run(input);
    println!("{}", output);
}

fn run(input: String) -> String {
    let vec: Vec<i64> = input
        .split("\n")
        .nth(1)
        .unwrap()
        .split_whitespace()
        .map(|x| x.parse::<i64>().unwrap())
        .collect();

    let mut map: HashMap<i64, i64> = HashMap::new();
    for x in vec {
        let insert = match map.get(&x) {
            Option::Some(y) => y + 1,
            Option::None => 1,
        };
        map.insert(x, insert);
    }

    map.iter()
        .map(|(&k, &v)| {
            if k == v {
                0
            } else if k < v {
                v - k
            } else {
                v
            }
        })
        .fold(0, |sum, i| sum + i)
        .to_string()
}