Problem:
Score : 100 points

Problem Statement

There are three houses on a number line: House 1, 2 and 3, with coordinates A, B and C, respectively.
Print Yes if we pass the coordinate of House 3 on the straight way from House 1 to House 2 without making a detour, and print No otherwise.

Constraints

0\leq A,B,C\leq 100

A, B and C are distinct integers.

Input

Input is given from Standard Input in the following format:

A B C

Output

Print Yes if we pass the coordinate of House 3 on the straight way from House 1 to House 2 without making a detour, and print No otherwise.

Sample Input 1

3 8 5

Sample Output 1

Yes

We pass the coordinate 5 on the straight way from the house at coordinate 3 to the house at coordinate 8.

Sample Input 2

7 3 1

Sample Output 2

No

Sample Input 3

10 2 4

Sample Output 3

Yes

Sample Input 4

31 41 59

Sample Output 4

No

Solution in Java8 (OpenJDK 1.8.0) (judge verdict: Runtime Error)

import java.util.*;
import java.math.*;

class Main{
    
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        
        int n = in.nextInt();    
        String s = in.next();
        
        Vector <Integer> vc = new Vector<Integer>();
        Vector <Integer> vpos = new Vector<Integer>();
        
        int ans = 0, ans2 = 0, ans3 = 0, ans4 = 0, ans5 = 0;
        int ch1 = 0;
        int ch2 = 0;
        s+='@';
        if (n != 1){
            for (int i = n - 1; i > -1; --i)
                if (s.charAt(i) == '#')  ++ch1; 
                    else  ++ch2;
                    
            int tmp = 0;
            
            for (int i = n - 1; i > -1; --i)
                if (s.charAt(i) == '.') ++tmp; 
                    else{
                        if (tmp != 0) vpos.add(i);
                        vc.add(tmp);
                        tmp  = 0;
                    }
            if ((s.charAt(0) == '#' && s.charAt(1) == '.' )|| (s.charAt(0) == '.' && s.charAt(1) == '#' )){
            int key = 0;
            for (int i = 0; i < n; ++i){
                if (s.charAt(i) == '#') ++ans4;
                    else{
                        ++key;
                        break;
                    }
            }
            for (int i = key + 1; i < n; ++i){
                if (s.charAt(i) == '.') ++ans5;
                    else break;
            }
            }
            ans2 = 0;    
            for (Integer x : vc)
                ans2+=x;
            }
        ans = Math.min(Math.min(ans2, ch1),ans2 - ans5);
        if (ch1 - ans5 > 0) ans = Math.min(ans, ch1 - ans5);
        System.out.print(ans);
    }
}