fun readInt () = valOf (TextIO.scanStream (Int.scan StringCvt.DEC) TextIO.stdIn) fun member x nil = false | member x (h::tl) = if x = h then true else member x tl val () = let val a = readInt () val b = readInt () val c = readInt () val d = readInt () val all = (b - a + 1) * (d - c + 1) val ab = List.tabulate (b - a + 1, fn x => a + x) val cd = List.tabulate (d - c + 1, fn x => c + x) val sameValues = List.filter (fn x => member x cd) ab val ans = all - (List.length sameValues) in print (Int.toString ans ^ "\n") end