Problem:
E-修行

ねねさんはプログラミングの修行のため、$N$ 個の整数 $V_1, V_2, V_3, \cdots, V_N$ について調べるプログラムを作っている。

指導役のうみこさんに言われて、ねねさんは 2, 3, 6 の倍数の個数を調べるプログラムを書いた。

2 の倍数は $A$ 個、3 の倍数は $B$ 個、6 の倍数は $C$ 個だった。

うみこさんは、次は「2 の倍数でも 3 の倍数でもない数」の個数を調べるようにと言った。

しかし、ねねさんは疲れたので、答えだけを求めてごまかすことにした。

$N, A, B, C$ の値だけをもとに、「2 の倍数でも 3 の倍数でもない数」の個数が分かります。これを求めるプログラムを作ってください。

入力

$N, A, B, C$ が空白区切りで与えられる。

出力

データの中にある「2 の倍数でも 3の倍数でもない数」の個数を出力せよ。ただし、最後には改行を入れること。

制約

$N$ は $1$ 以上 $100$ 以下の整数

$A, B, C$ は $0$ 以上 $N$ 以下の整数

$A$ が $N$ より大きいなどという、矛盾するデータは与えられない

入力例1

6 3 2 1

出力例1

2

例えばデータが $2, 3, 4, 5, 6, 7$ のときは、$5$ と $7$ のふたつが「2 の倍数でも 3 の倍数でもない数」です。

入力例2

10 9 9 9

出力例2

1

Solution in JAVA (judge verdict: Accepted)

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		@SuppressWarnings("resource")
		Scanner sc = new Scanner(System.in);
		String s = sc.nextLine();
		int[] i = convStrToInt(s);
		System.out.println( TwoNorThree(i) );


	}

	private static int[] convStrToInt(String s) {
		String[] strs = s.split(" ");
		int[] ints = new int[strs.length];
		int i = 0;

		for (String st : strs) {
			ints[i] = Integer.parseInt(st);
			i++;
		}

		return ints;
	}

	private static int TwoNorThree(int[] i) {
		return i[0] - i[1] - i[2] + i[3];
	}
}