文系プログラマーのプログラミング備忘録

Java、競プロ、数学などについて書いてます

Fairness [AtCoder Grand Contest 024 A]

atcoder.jp


操作が0回目のとき、すなわち何もしていないときの高・中・低の所持している値と 高-中 の値は、


・A, B, C(A-B)


です。1回目のときは、


・B+C, A+C, A+B(B-A+C-C = B-A)


ですね。同様に2回目は、


・2A+B+C, A+2B+C, A+B+2C(2A-A+B-2B+C-C = A-B)


です。以降、3回目は B-A 、4回目は A-B というふうに続いていきます。つまり、操作が偶数回目なら A-B 、操作が奇数回目なら B-A となっているんですね。


import java.util.*;

class Main {
	static Scanner sc = new Scanner(System.in);
	public static void main(String[] args) {
		
		int a = sc.nextInt(), b = sc.nextInt(), c = sc.nextInt();
		long k = sc.nextLong();
		System.out.println(k%2==0? a-b : b-a);
		
	}
}