class Program { static void Main(string[] args) { int[] bagA = Array.ConvertAll(Console.ReadLine().Split(' '), num => int.Parse(num)); int[] bagB = Array.ConvertAll(Console.ReadLine().Split(' '), num => int.Parse(num)); int[] turn = Array.ConvertAll(Console.ReadLine().Split(' '), num => int.Parse(num)); var result = MoveStone(bagA, bagB[0], turn[0]); if (result.white < turn[1]) { result.remainder += result.white; } else { result.remainder += result.white - turn[1]; } Console.WriteLine(result.remainder); } /// /// /// /// /// /// /// remainder:移動後のbagAの白色の碁石 white: private static (int remainder , int white) MoveStone(int[] bagA, int v1, int v2) { int blackRem = v2 - bagA[1]; if(blackRem < 0) { blackRem *= -1; } int remainder = 0; if (remainder < 0) { remainder = 0; v1 += bagA[0]; } else { remainder = bagA[0] - blackRem; v1 += blackRem; } return (remainder, v1); } }