using System; using System.Linq; using System.Collections.Generic; using System.Text.RegularExpressions; class Program { static void Main() { // ans = ABの要素数 * CDの要素数 - ABCDの重複数 var ABCD = Console.ReadLine().Split().Select(int.Parse).ToList(); var A = ABCD[0]; var B = ABCD[1]; var C = ABCD[2]; var D = ABCD[3]; // 数値範囲取得 var ArangeB = Enumerable.Range(A, (B-A+1)).ToList(); var CrangeD = Enumerable.Range(C, (D-C+1)).ToList(); var lengthAB = ArangeB.Count(); var lengthCD = CrangeD.Count(); // リストの結合 ArangeB.AddRange(CrangeD); // 重複要素の抽出 var duplicates = ArangeB.GroupBy(x => x).Where(x => x.Count() > 1).Select(group => group.Key).ToList(); // 重複要素数を取得 var duplicateCount = duplicates.Count(); // 解答 var ans = lengthAB * lengthCD - duplicateCount; Console.WriteLine(ans); } }