Problem Statement
Andrew drew a bunch of points on a sheet of graph paper.
You are given the coordinates of these points in two
Now Andrew wants to draw a rectangle. The sides of the rectangle must be parallel to the coordinate axes. (In other words, each side of the rectangle must be either horizontal or vertical.) Additionally, each of Andrew's points must be inside the rectangle or on its boundary.
Return the area of the smallest possible rectangle Andrew can draw.
Definition
- Class:
- BoundingBox
- Method:
- smallestArea
- Parameters:
- int[], int[]
- Returns:
- int
- Method signature:
- int smallestArea(int[] X, int[] Y)
- (be sure your method is public)
Constraints
- X will have between 2 and 50 elements, inclusive.
- X and Y will have the same number of elements.
- Each element of X and Y will be between -100 and 100, inclusive.
- The points described by X and Y will not be in a straight line horizontally or vertically. That is, the smallest rectangle will have a positive area.
Examples
{0,1}
{1,0}
Returns: 1
{0,-2,-1}
{-1,-1,-2}
Returns: 2
{0,0,1,0,-1,2}
{0,1,2,-2,0,-1}
Returns: 12
{9,-88,-40,98,-55,41,-38}
{-65,56,-67,7,-58,33,68}
Returns: 25110
{-56,-67,3,25,25,-21,-36,-38,34,84,4,-85}
{-80,61,-1,-20,-35,4,-65,10,22,-54,-28,75}
Returns: 26195
{-85,-87,1,-23,48,33,70,-57,39,-68,-80,85,56,-20,-44,-77,-9,67,-75,-14,94,10,91,74,-51}
{-46,65,87,-93,37,87,60,-64,-38,-21,-6,-87,-64,-23,-73,89,94,-3,-11,24,-67,24,10,-58,-35}
Returns: 33847
{-44,1,73,-79,-1,-31,48,33,67,82,62,92,28,71,100,-20,15,85,-54,13,-70,38,-37,-16,5,82,11,-61,13,-14,100,39,-6,-33,-93,-74,-63,39,-100,10,-2,28,-60,-88,-69,37,23,-42,-37,-14}
{-41,-18,-10,-22,55,-26,88,-75,-19,1,-29,-76,93,8,-62,53,1,-45,90,-81,-19,53,-75,97,59,84,-71,1,-8,-94,-91,-39,37,-80,-13,-77,-9,29,-67,11,59,-69,74,-51,-12,-6,-86,28,84,72}
Returns: 38200
{-49,87,-9,94,19,38,-19,37,88,0,-50,-45,35,72,-4,-73,-99,-90,-74,55,-3,72,82,81,-25,86,99,50,19,79,17,16,-44,78,-4,34,-94,-98,32,70,-73,54,-4,10,-84,-33,52,74,11,-84}
{49,11,-57,-83,-28,55,74,9,100,-30,-2,74,74,3,-7,-3,-87,-47,99,8,-85,34,2,95,-93,-12,-25,-15,-51,27,76,91,-28,41,-70,-70,-44,-69,-7,14,73,-61,33,56,-97,-27,92,75,15,64}
Returns: 39006
{-58, -39}
{43, -79}
Returns: 2318
{-41, 22, -70}
{55, 93, -3}
Returns: 8832
{25, 98, 89, 60}
{-12, -54, -73, 84}
Returns: 11461
{-17, -35, 17, -78, -62}
{51, 98, -64, 95, 58}
Returns: 15390
{44, -21, -18, 55, -58, 91}
{-61, -62, -100, -78, -98, -59}
Returns: 6109
{-16, 65, -54, -32, 99, -81, -59}
{-97, -51, 74, -12, 3, -74, -3}
Returns: 30780
{-81, 25, -10, -7, -37, 34, -37, -97}
{41, -62, -92, 98, 57, -33, -24, -96}
Returns: 25414
{-44, -81, 34, -65, -95, 65, -38, -65, -78}
{49, -75, -14, 49, 18, -74, 94, 80, -80}
Returns: 27840
{24, 35, 50, -2, -85, -50, 64, 76, 79, 89}
{-45, -46, 1, -36, -78, 26, -56, -59, -87, 86}
Returns: 30102
{64, -39, 36, 27, -39, -61, 30, 2, -20, -19, 52}
{80, 43, 40, -30, 75, -87, 46, 57, -84, -97, 25}
Returns: 22125
{-62, -58, -12, -11, 56, 19, -43, -6, -4, 19, 80, 22}
{12, 90, 84, -27, 41, 4, -9, -56, 99, -50, -98, -67}
Returns: 27974
{-1, 62, -31, 10, 18, 26, -3, 15, -97, 40, -71, -28, 5}
{-100, -26, -56, -50, -35, 42, 13, 43, -77, -28, 70, 56, 99}
Returns: 31641
{90, 45, -94, 32, 96, -32, -99, -48, -66, -87, 52, -50, -21, 6}
{-67, -77, 45, -72, 45, -70, -15, 80, -24, -58, 44, 43, -25, -10}
Returns: 30615
{-44, -1, 13, 34, -99, 87, -61, 44, 1, -22, -48, -2, 92, 74, -95}
{83, 97, -80, -38, 49, -43, -5, 71, 84, 5, -79, -38, -52, 87, 41}
Returns: 33807
{3, 95, 76, -15, -12, 94, -18, -64, 11, -58, -65, -68, 27, -92, 40, -44}
{40, -15, 4, 42, 30, 69, 6, -62, 30, -69, -72, 53, -30, 66, 24, -33}
Returns: 26367
{63, -63, 69, 93, -65, 96, -22, 60, 42, 55, -55, -94, 86, 47, 45, 9, 44}
{84, 44, 94, 40, 19, -77, 75, 85, -84, -1, 17, 56, 19, -54, -52, 29, 21}
Returns: 33820
{8, -4, 13, -32, 38, -23, -30, 86, -30, 11, 0, -29, -91, -9, 23, -66, 37, 98}
{85, -12, 24, -44, -35, -80, 45, -54, 35, 69, 96, 61, 2, -53, -39, -48, 46, 3}
Returns: 33264
{77, -49, 26, 70, -3, 67, -87, 50, 34, -34, 55, 11, 56, -94, 7, -85, 56, -4, -4}
{48, -72, -78, -7, 36, 66, -58, 11, 100, -50, -81, -79, 98, -97, 63, 93, -20, -3, 60}
Returns: 33687
{-35, -44, 0, 36, -96, -3, -82, 27, 42, 13, -34, -61, 9, -84, -56, 72, -22, -92, -5, -2}
{1, 42, 94, 18, -96, 65, -94, -46, -8, -77, 75, 99, -51, -28, -57, -16, -63, 10, 6, 52}
Returns: 32760
{-41, 2, 58, -28, -48, 17, -37, 68, -46, 80, -61, 27, -8, -21, 54, -100, 40, 12, -75, 37, -61}
{86, -6, -65, -46, -80, -24, 6, -1, -4, 15, 8, -60, -59, 77, 4, 17, 33, -49, 15, 93, -67}
Returns: 31140
{42, -52, 98, 39, 7, 74, 37, -56, -54, -13, -51, -5, 81, 34, 34, 63, 40, -79, -87, 22, -89, -52}
{-87, 17, -54, 1, -29, -20, 48, 97, 17, -78, -12, -34, -24, 14, 84, 12, -81, -35, -51, 14, 86, 2}
Returns: 34408
{-31, -100, 82, -13, -48, 58, 78, -89, 60, 86, 14, 95, -27, -88, 11, -97, -64, 71, 33, -66, -82, 70, 93}
{-75, -57, 15, 4, -86, 97, -21, 39, -96, -48, 48, 76, -11, 95, -8, 51, -59, 17, 82, -66, -95, 78, 61}
Returns: 37635
{23, -78, 49, -66, -90, -74, 69, 50, 86, 70, -57, 7, 94, 35, -28, -11, -22, 56, -87, -50, -85, 48, -90, 6}
{-27, -85, 99, -100, 31, -29, 64, -48, 33, -10, -28, 78, 87, -40, 43, 40, -76, 46, -34, -75, 28, -65, 66, -14}
Returns: 36616
{25, 12, 44, 34, 88, -50, 95, -12, -72, -51, -39, -4, -100, 82, 35, -38, -45, 54, 84, 33, -14, -92, -4, 65, -89}
{51, -21, 44, -63, -25, 77, 69, 84, -63, -38, 90, -98, -80, 90, 77, -61, -40, -85, -21, 16, -76, 83, -81, -43, -62}
Returns: 36660
{15, -23, -29, -65, 46, 15, -4, 36, 36, 47, 56, 83, 14, 30, -72, 26, -67, 33, -70, -51, -89, -6, 35, 6, 97, 46}
{79, 72, 35, 79, 66, 91, -98, 96, 23, -54, 18, -40, -78, -80, -80, 32, -51, 68, -100, -1, -28, -79, -6, 81, -74, -72}
Returns: 36456
{-56, -11, -2, 52, 16, -29, 2, -96, 34, -66, 98, -26, 88, -71, 34, -76, -40, -80, -30, -75, -81, -76, 100, -11, 97, 36, 16}
{-87, 97, 25, 11, 22, 8, -61, -12, -55, 20, 81, 13, -89, 73, -74, -40, -58, -72, 95, -74, -35, -14, -61, 87, -71, 2, -19}
Returns: 36456
{-46, -30, 3, -52, 86, -96, 66, 48, -98, -83, 29, -73, -32, 2, -45, -77, -59, -32, 79, 78, 29, 16, 46, 43, 29, -54, -69, 3}
{83, 30, 42, 2, -69, -42, 14, 56, 46, -83, -86, -24, 85, -54, -58, 87, -51, -34, 74, -52, 73, 100, -88, 77, 69, -13, 41, 31}
Returns: 34592
{12, -41, 16, -44, 9, 14, -11, -44, -17, 87, 97, -62, 58, -99, -53, -18, 37, 46, -44, 18, -91, 61, 31, 19, -80, -28, 1, -79, 58}
{-24, 99, -87, -60, -8, -76, 67, -1, 26, -72, -72, -70, 95, -95, -56, -69, 100, -49, -94, -14, 53, -92, 44, -37, -98, 89, 78, 38, -35}
Returns: 38808
{86, 57, 40, 19, -78, 60, 77, -88, 13, -10, 9, 88, -100, 45, 83, 6, 2, -38, 82, -36, 99, 19, -83, -45, -40, 31, -70, 65, -49, 93}
{56, 21, 5, 34, -65, -46, -83, 9, -61, 59, -56, 65, 81, 100, -42, -48, 33, -49, 72, -82, 10, 17, -31, -66, 36, 10, 2, -18, 21, 69}
Returns: 36417
{-87, 56, -100, 17, 39, 27, 63, -24, -62, 62, -97, -73, 72, 16, 75, 13, -41, -38, 36, 69, -92, -26, -26, -35, -67, -83, 56, -35, 63, -24, -35}
{-33, -13, 95, 56, -79, 70, -34, 55, 64, -38, 29, 48, -77, -72, 30, -89, -99, 60, 63, -2, 85, 20, -80, 10, -20, 12, 21, 63, 5, -47, 84}
Returns: 33950
{-64, -12, 93, 56, -54, 73, 33, 96, 63, -76, -37, 11, 90, -49, -80, -33, -39, -5, 89, 90, 12, -21, -50, 19, -95, 70, 71, 26, 68, 95, -80, -77}
{-28, -40, 1, -94, -11, -49, -44, -71, 20, 59, 84, 14, 93, -26, -58, -20, -39, 16, 52, -78, -2, 58, 58, -39, -7, -47, -62, -93, 19, 18, 83, 67}
Returns: 35717
{38, 56, -35, -64, -4, 64, 13, -100, 83, 47, 15, -46, -16, -87, -98, 21, 17, -83, -9, 12, -65, -21, -19, -99, -69, -23, -36, -94, -62, 27, 61, 71, 11}
{-81, -8, -60, -25, 23, 56, 71, 24, 47, -35, -1, 89, -20, 71, -77, 21, 8, -47, 15, 38, -49, -61, -98, -7, -99, -55, -66, 78, 78, -45, 10, -21, 1}
Returns: 34404
{-52, -31, -21, -73, -79, -13, 82, 38, 3, -18, -78, 67, -74, -28, 90, -24, 21, 73, -47, 2, 78, 38, 8, -49, 7, -7, 46, 32, -6, -33, 36, -3, -74, 42}
{61, -32, 47, -63, -47, 6, -18, -85, -73, -39, 79, -86, 40, 100, 7, -36, -71, -88, 72, -1, 6, 90, 14, -41, -48, 20, -37, -40, 28, 78, -27, 2, -93, 27}
Returns: 32617
{-57, -35, -3, 85, 80, 9, -76, -45, 39, -27, 20, -30, 3, -11, -18, -41, -19, -26, -45, 12, -90, -94, -54, 70, 59, 38, 64, -17, -17, -69, -61, -56, 60, -70, 86}
{94, 14, 86, -72, -75, -92, 24, 94, 73, 12, -89, 68, 45, 56, 35, 65, -73, -38, 46, 6, 95, 53, 92, -22, 35, 82, 45, -37, 18, 47, -83, -11, -47, -14, -76}
Returns: 33660
{-78, 30, 86, -89, -47, -40, 45, 22, 80, 77, 29, -34, 42, 50, 66, -60, 58, 64, -46, -20, 8, -19, -15, -80, -55, 22, -75, 66, -5, 79, 66, 17, 27, 72, 80, 49}
{-42, 45, -70, 56, -35, 1, -85, 44, 19, 93, 87, 12, -77, -79, 64, 14, -35, -6, 15, 40, -11, 13, -53, 43, -37, 97, -1, 66, -45, -90, 62, 66, -6, -49, -72, -15}
Returns: 32725
{-78, 33, -78, -88, -26, 68, -78, 92, 79, 99, 19, -81, -35, -45, 55, 94, 4, -45, 76, -80, -29, -5, -42, 49, -88, 12, -74, 57, -99, 7, 63, 95, -58, -37, 60, -33, 75}
{-17, -83, 83, 52, 77, 4, 42, 81, -69, -31, 52, 84, 50, 27, 75, -49, -86, 10, 43, 59, -57, 56, -48, 33, 70, 46, -44, 25, 26, 64, 44, 49, 55, -19, 3, 18, -39}
Returns: 33660
{-89, -43, -66, 13, -27, -92, -66, -9, 6, -54, -96, 54, -30, -56, 68, -47, -60, 4, 15, 26, 5, -61, -86, 38, -90, -51, 26, 33, -38, 25, -77, 89, 31, -55, 42, 4, -30, 27}
{-36, -89, 19, 75, 3, -52, 92, -25, -71, 62, 3, 82, 14, 27, -74, 4, -5, 32, -72, 87, -10, 38, -35, 90, -100, 42, -28, 27, 26, -73, -65, -97, 10, 2, 84, 51, 33, 63}
Returns: 35520
{1, 100, 54, -91, -97, -45, 78, 88, 87, -27, -5, 70, -19, -26, 53, 10, -13, 10, 40, -46, 7, -66, -84, 33, -18, 20, -68, -9, 68, -89, 73, -46, 65, -26, 71, -59, 40, 33, -48}
{54, 96, -96, 38, 89, 44, -23, 17, 43, -65, 58, 12, -52, -84, -45, 14, 78, 64, 3, 92, -50, 35, 67, 34, 66, 71, -27, 98, 10, 15, 26, -55, 58, -94, 31, -25, 3, 54, 49}
Returns: 38218
{-40, -56, 30, 79, -13, 9, 98, -90, -18, -35, 52, 6, 38, 95, -7, 70, -7, 100, 5, 56, 57, 98, 49, -30, -90, 7, 45, 28, 91, -79, 34, 33, 91, -96, -13, 97, -14, -73, -22, 98}
{-21, 21, 2, 31, 88, -22, 89, -1, -92, 47, -30, -26, 61, -35, 77, 39, 23, -76, -56, -8, -33, 25, 73, 44, -98, 86, -15, 76, -83, 4, -6, -16, -46, 14, -18, 0, -95, 4, -1, -56}
Returns: 36652
{74, 1, 62, 88, 83, 55, -21, -59, 6, -90, -15, 52, -24, -39, 82, -87, -41, -12, -82, -72, -70, 16, -20, 50, 5, -45, -61, -69, -30, 9, 57, -81, 54, -43, 85, 13, -94, -95, -18, -24, -12}
{-41, -92, 9, -17, 26, 69, -43, 65, -65, 14, -1, 82, 84, 30, 94, 38, 68, 2, -59, 47, -11, 74, -58, -37, -24, 45, 9, 73, -23, 19, -14, -76, -96, 54, -84, -18, -67, -96, -65, 44, -96}
Returns: 34770
{51, -61, -95, 48, 63, 48, 30, -9, 39, -66, 73, 68, -57, -31, -23, 70, -95, -96, 65, 0, 23, -31, 66, 74, -21, 52, 87, -91, -54, -71, 62, 24, -82, -61, 22, 64, -80, 15, -27, 72, -74, 32}
{24, -34, 55, 10, 81, 9, -74, 86, 43, 39, -38, -14, -69, -37, -98, 24, -79, 29, 71, -2, -64, 7, -67, 55, -79, -54, 97, 100, 24, -45, -96, 1, -87, 99, 89, 98, 6, -93, 53, 15, 38, 14}
Returns: 36234
{-98, 75, 16, -17, -35, -23, -16, 84, 10, 36, 29, -72, 21, 68, -79, -55, 85, 55, 10, 6, -68, -89, 85, 26, -96, -89, -1, -37, 35, 25, -95, 20, 15, -87, 38, 69, 5, -99, -23, -98, -65, -53, -52}
{-12, 73, -38, 68, 89, -78, 69, 78, 89, -11, 65, -52, -35, -5, -19, 90, -40, 79, -63, 79, -70, 49, 49, 68, 71, 77, -36, 55, -89, -52, -80, -18, 12, 1, -39, -41, -79, 58, 52, 44, -52, -70, -58}
Returns: 32936
{-51, -32, -8, 61, -78, 2, 40, 93, 8, -25, 2, 52, -96, -24, -55, 26, -54, 64, 34, -6, -28, 36, -28, -30, 5, 6, 43, -85, -22, -89, -92, -21, -60, -97, 68, 87, 86, 13, 93, -71, -56, -61, 7, 69}
{94, -56, -90, 64, 73, -19, 65, 71, -63, -73, -16, -86, -7, -16, 25, 19, -99, 80, -43, 86, -64, -44, 48, 75, 80, 95, -11, 34, 17, 64, -97, -13, -54, -34, -44, -22, -11, -7, -78, -79, 45, -87, -37, 64}
Returns: 36860
{82, -59, -83, 74, 26, 49, 91, 82, 87, -74, 22, 100, -6, -44, -20, 75, 15, 67, -94, 37, 68, -80, -5, -6, 14, 35, -88, -11, 47, -86, 65, 92, 52, 79, -26, 2, -9, -38, 64, 97, -65, -60, 52, 52, 65}
{-2, 47, 82, 80, 95, -6, 20, 67, -51, 100, 22, -35, 17, -95, 79, 94, -11, -89, 19, 64, -33, -25, 4, 69, 21, 35, 30, -12, 28, 92, -9, -75, -4, 79, -93, 41, 12, -96, -78, 78, 1, -41, 85, -59, 75}
Returns: 38024
{-55, 63, -7, -65, -67, -91, 35, 98, 36, -54, -36, -62, -27, -54, 61, -68, 37, -2, 10, -51, 8, 92, -65, 86, -67, -27, -4, -93, -16, 2, 10, 80, 9, 51, 99, -64, 59, 60, 93, 41, 75, -34, 29, -96, 2, 98}
{9, 53, -72, -92, 82, 38, -78, -29, -52, -94, -81, -51, -82, 86, 82, 10, 74, -95, 47, 89, 57, -90, -25, 44, -83, 3, -38, -53, -93, 51, 36, 87, 19, 33, 32, 2, -62, 71, -88, 5, 76, 18, 97, 57, -40, -54}
Returns: 37440
{31, -20, 89, 96, 81, -67, -15, -32, -72, -25, -10, 97, -34, 44, 58, -46, -5, 50, 40, -11, 82, 43, 79, -64, 34, -49, -73, -14, -19, 31, -15, -78, -51, -76, -12, 58, 24, -77, -42, 94, 42, -32, -73, -71, -62, -63, 25}
{54, -90, -61, -38, -79, 40, -20, -73, 52, 24, 83, -18, -82, -19, -40, -49, -36, -31, 80, 45, -25, -34, 63, -91, 20, 49, -96, 23, 29, -81, -91, 57, -42, 3, 38, 89, 96, 53, 12, -24, -64, 54, 44, -65, -91, 25, -18}
Returns: 33600
{-50, 7, -17, -39, -23, 46, 34, 21, 61, -44, 89, 99, 19, -62, 95, 94, 67, 71, -23, -2, -15, 34, 33, -14, 15, -25, -73, 74, 86, -1, -54, -62, -70, -59, -26, 61, 15, -5, 19, 80, -25, 40, 11, -40, 60, -79, 2, -46}
{74, -100, 26, -64, -72, 22, 100, -78, 22, -64, 99, -26, -59, -14, -45, -70, 85, 60, 84, -46, 15, 48, -85, -39, 41, -46, 2, -83, 67, 37, -66, 85, 20, 1, -69, 45, 41, -91, 67, 35, 70, 15, 92, 71, 95, -9, 3, -27}
Returns: 35600
{34, -86, -37, 0, -4, -45, -64, 71, 69, 40, -74, 75, 20, -86, 25, -77, -20, 86, 64, 37, 38, 82, 52, -9, -58, -11, -36, -11, -6, 1, 26, 97, 49, -1, 11, -52, -37, -60, 75, 28, 40, 60, 45, 36, -68, 96, 0, 98, -64}
{-70, 86, -9, -36, 43, -73, -61, -22, 41, -92, -14, -83, 29, 54, -26, -49, 93, -82, 81, -2, 97, -32, 68, 57, 78, -97, 25, -24, 61, 80, 78, 10, -38, 51, 44, 98, 2, -38, -92, -82, 32, 49, 68, -73, -51, 30, 77, -60, -99}
Returns: 36248
{38, -74, 51, -25, 59, 85, 39, -85, -54, 60, 29, 89, -66, -77, 45, 98, 17, -98, 19, -5, -88, -96, 15, -20, -19, -84, 1, 61, 62, 23, -25, 58, 82, -89, 41, 37, 82, 68, 28, -48, -56, -21, 75, -21, -68, 7, 2, -29, 32, -5}
{-80, -58, 10, 37, 37, -41, -65, -28, 27, -82, -62, 83, -55, -100, -8, -96, 33, 21, 78, 82, 6, -81, -39, -28, -76, -36, 95, -32, -21, 5, 81, 94, 84, -48, 77, 44, -39, -99, 42, 44, -99, 41, 45, -4, -21, 56, -77, 82, -87, 10}
Returns: 38220
{9, -88, -40, 98, -55, 41, -38 }
{-65, 56, -67, 7, -58, 33, 68 }
Returns: 25110
{-99, -98 }
{-99, -98 }
Returns: 1
{1, 2 }
{1, 2 }
Returns: 1
{5, 10 }
{15, 20 }
Returns: 25
{-100, -99 }
{-100, -99 }
Returns: 1
{10, 20 }
{10, 20 }
Returns: 100
{0, -2, -1 }
{-1, -1, -2 }
Returns: 2
{2, 1 }
{1, 2 }
Returns: 1
{1, 1, 1, 2 }
{3, 2, 1, 2 }
Returns: 2
{2, 3 }
{2, 3 }
Returns: 1
{-1, -2, -2, -1 }
{0, 0, -1, -1 }
Returns: 1
{-10, -30 }
{-20, -50 }
Returns: 600
{1, 2 }
{2, 1 }
Returns: 1
{-100, -20 }
{-50, -30 }
Returns: 1600
{-3, -2, -10 }
{-4, -5, -6 }
Returns: 16
{-6, 0 }
{-3, 0 }
Returns: 18
{-3, -4, -5 }
{-10, -10, 12 }
Returns: 44
{-1, 0 }
{0, 1 }
Returns: 1