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)

// Try AtCoder
// author: Leonardone @ NEETSDKASU

fn main() {
    let mut stdin = String::new();
    std::io::Read::read_to_string(
    	&mut std::io::stdin(),
        &mut stdin).unwrap();
    let mut stdin = stdin.split_whitespace();
    let mut get = || stdin.next().unwrap();
    macro_rules! get { () => (get().parse().unwrap()) }
    
    let s = get().as_bytes();
    let x: i32 = get!();
    let y: i32 = get!();
    
    let mut tmpx = std::collections::BTreeSet::new();
    let mut tmpy = std::collections::BTreeSet::new();
    tmpx.insert(0);
    tmpy.insert(0);
    
    let mut st = 0;
    let mut f = 0;
    let mut first = true;
    for &c in s.iter() {
    	let mut tmpx2 = std::collections::BTreeSet::new();
    	let mut tmpy2 = std::collections::BTreeSet::new();
    	if c == b'F' {
        	f += 1;
            tmpx2 = tmpx;
            tmpy2 = tmpy;
		} else {
        	if st == 0 {
              for &cx in tmpx.iter() {
                  tmpx2.insert(cx+f);
                  if !first {
                  	tmpx2.insert(cx-f);
                  }
              }
              tmpy2 = tmpy;
			} else {
              for &cy in tmpy.iter() {
                  tmpy2.insert(cy+f);
                  tmpy2.insert(cy-f);
              }
              tmpx2 = tmpx;
            }
        	st = 1 - st;
            f = 0;
            first = false;
        }
        tmpx = tmpx2;
        tmpy = tmpy2;
    }
    
    let mut can = 0;
    
    for &cx in tmpx.iter() {
    	if cx == x {
        	can += 1;
            break;
        }
    }
    for &cy in tmpy.iter() {
    	if cy == y {
        	can += 1;
            break;
        }
    }
    if can < 2 {
    	println!("No");
	} else {
    	println!("Yes");
    }
}