Problem:
Score : 100 points

Problem Statement

How many ways are there to choose two distinct positive integers totaling N, disregarding the order?

Constraints

1 \leq N \leq 10^6

N is an integer.

Input

Input is given from Standard Input in the following format:

N

Output

Print the answer.

Sample Input 1

4

Sample Output 1

1

There is only one way to choose two distinct integers totaling 4: to choose 1 and 3. (Choosing 3 and 1 is not considered different from this.)

Sample Input 2

999999

Sample Output 2

499999

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

import java.util.*;

public class Main {
  
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int[] D = new int[N];
    String[] Ds = sc.next().split(" ");
    for(int i = 0; i < N; i++) {     
      D[i] = 0;
    }
    //1は距離ゼロでなければならない
    if(!Ds[0].equals("0")) {
      System.out.println(0);
      return;
    }
    for(int i = 0; i < N; i++) {
      int a = Integer.parseInt(Ds[i]);
      if(a == N) { //Nにはたどり着けない
        System.out.println(0);
        return;
      }
      D[a] ++;
    }
    //D[0]は必ず1でなければならない
    if(D[0] != 1) {
      System.out.println(0);
      return;
    }
    int sum = 0;
    for(int i = N - 1; i >= 1; i--) {     
      sum += getCount(D[i], 0, D[i - 1]);
    }
    System.out.println(sum);
  }
  
  public static int getCount(int n, int index, int m) {
    if(index == m - 1) {
      return 1;
    }
    int sum = 1;
    for(int i = 0; i < n; i++) {
      sum += getCount(n - i, index + 1, m);
    }
    return sum;
  }
}