Problem Statement
We need to know the area that is covered by the collection of triangles. Of
course, we don't want to count overlapping areas multiple times. Create a
class TriArea that contains a method area that is given
Definition
- Class:
- TriArea
- Method:
- area
- Parameters:
- int[], int[], int[]
- Returns:
- double
- Method signature:
- double area(int[] xCenter, int[] yCenter, int[] height)
- (be sure your method is public)
Constraints
- xCenter will contain between 1 and 25 elements, inclusive.
- yCenter and height will have the same number of elements as xCenter.
- Each element of xCenter and yCenter will be between -100 and 100, inclusive.
- Each element of height will be between 1 and 100 inclusive.
Examples
{1}
{3}
{7}
Returns: 49.0
This collection consists of just one triangle with a height of 7. This triangle has a base of 14 and an altitude of 7 so it has area 49.
{1,1,1}
{3,3,3}
{7,7,8}
Returns: 64.0
The first two triangles in this collection are identical and the third triangle contains both of them, so the total area covered is just the area covered by the third one.
{1,2}
{3,3}
{7,7}
Returns: 55.75
The area covered by these 2 triangles is the sum of their areas minus the area of their intersection. Their intersection is a 45 degree right triangle with height 6.5, so the result is 7*7 + 7*7 - 6.5*6.5 = 55.75.
{-100, -100, 100, 100}
{100, -100, -100, 100}
{100, 100, 100, 100}
Returns: 40000.0
{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18}
{-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5}
{9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9}
Returns: 229.75
{-100, -100, 100, 100}
{-100, -100, -100, 100}
{100, 100, 100, 1}
Returns: 20001.0
{-7}
{-8}
{3}
Returns: 9.0
{-100, -100, 100, 0}
{-100, -100, -100, -100}
{100, 100, 100, 1}
Returns: 20000.5
{-100, -100, 100, 0}
{-100, -100, -100, -99}
{100, 100, 100, 1}
Returns: 20001.0
{-100, -100, 100, 1}
{-100, -100, -100, -99}
{100, 100, 100, 1}
Returns: 20000.75
{1,1,1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,-11,-12,-13,-14}
{3,3,3,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4,-4,-4,-4}
{7,7,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,13,13,13,13}
Returns: 473.5
{3,3,3,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4,-4,-4,-4}
{1,1,1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,-11,-12,-13,-14}
{7,7,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,13,13,13,13}
Returns: 641.0
{-87, -30, 88, 55, 62, 15, -72, -91, -46, 23, -5, 44, 41, -81, -92, 39, 85, 51, 60, 0, -74, -97}
{16, -36, 73, 71, 33, 89, 39, 21, 17, -21, 55, -19, 56, 44, 42, -88, 30, 94, -83, 28, -9, 59}
{90, 100, 44, 84, 28, 24, 55, 62, 57, 41, 62, 89, 12, 42, 77, 12, 10, 21, 45, 75, 23, 33}
Returns: 35769.5
{55, -92, -86, -86, 22, -1, 47, -7, -83, 59, -84, -55, -62, -87, 96, 61, 65, 18, -32, 7, -28, 56, 3, -77, -24}
{-52, 4, -1, 19, -20, 9, -63, 5, 56, -6, 36, 68, 6, 23, -94, 51, -18, -16, 66, 25, -1, -71, 18, -91, -47}
{2, 61, 86, 26, 1, 4, 57, 55, 11, 58, 32, 37, 53, 63, 46, 51, 29, 80, 92, 95, 32, 77, 97, 40, 31}
Returns: 37197.75
{41, 27, -33, -87, -61, -40, 44, 77, 8, 20, 27, 27, -45, 3, 44, 58, 16, 25, 44, 15}
{34, 40, 18, 35, 4, -36, -43, 1, -77, -59, -75, -20, 1, -91, 18, 50, -13, 73, 21, -80}
{60, 98, 22, 55, 79, 88, 32, 58, 94, 34, 67, 30, 40, 13, 6, 18, 49, 59, 74, 29}
Returns: 34120.25
{40, -23, -20, -55, -81, 72, 66, 13, -46, -35, 31, 65, 38, 84, 15, 55, 6, 27, 80, 87, 20}
{-77, 48, 37, 74, -49, -58, 72, -11, -13, -54, -2, 0, 72, -65, 42, -79, -28, -42, -2, -52, 62}
{5, 16, 62, 80, 49, 82, 59, 72, 71, 2, 86, 88, 75, 3, 90, 53, 93, 66, 76, 19, 17}
Returns: 40134.75
{19, -18, 80, 83, 98, 90, 4, -66, 15, -86, -91, -2, 14, -81, 29, 52, 46, 44, 5, -45}
{-42, -19, 78, -23, -43, 3, 23, 99, -15, 85, 74, 70, 31, 51, -95, -37, -60, 92, -86, 33}
{82, 4, 87, 80, 99, 16, 3, 8, 84, 33, 9, 86, 68, 19, 43, 62, 39, 98, 48, 79}
Returns: 43529.0
{-23, 99, -17, 87, 85, -31, -44, -46, 10, -16, -12, 49, 76, 9, -70, 43, 89, -6, 47, 8, -65, 100, -73, -16, 25}
{45, 100, -36, -95, 85, -72, -95, -3, -37, -20, -44, -77, 95, -60, 71, 8, 63, -9, 41, -1, 31, 97, 88, -34, -59}
{90, 8, 52, 55, 21, 52, 31, 8, 85, 49, 36, 35, 2, 89, 66, 74, 51, 86, 58, 87, 9, 86, 4, 99, 29}
Returns: 44233.0
{94, -11, 56, -80, 19, -14, -18, 62, 35, -33, -14, -78, -29, -41, -68, 80, 88, 74, -52, 10, -57, -29}
{54, -2, -1, -26, -62, 22, 22, 89, -17, 39, 75, 99, -56, 74, -41, -55, 71, 89, 85, 3, 8, 13}
{84, 33, 90, 25, 43, 54, 65, 49, 12, 42, 26, 22, 58, 41, 34, 49, 19, 25, 46, 50, 6, 25}
Returns: 30946.5
{-80, 54, -4, -95, 58, -20, -97, 27, 99, 53, -47, -79, 9, 63, 24, 25, 65, 41, -36, -85, 97, 86, -71}
{31, -14, -68, -10, 23, 70, -15, -88, 8, 44, 93, 73, 2, -29, 57, 11, -5, 96, -72, 46, -69, 50, 52}
{58, 84, 91, 63, 99, 88, 73, 23, 70, 27, 45, 79, 10, 27, 1, 97, 69, 34, 6, 62, 69, 66, 93}
Returns: 50039.75
{-79, 46, -64, -8, 48, -6, -64, 52, 83, -59, -74, 95, 98, 87, 83, 87, 31, -18, 64, 47, 69}
{17, -6, -73, 91, 40, -63, -54, -47, -96, 38, -74, -92, -81, -35, -65, 9, -84, 16, -27, 82, 22}
{56, 35, 69, 66, 89, 17, 8, 26, 96, 88, 80, 34, 7, 53, 78, 24, 32, 25, 28, 45, 32}
Returns: 40705.5
{-82, -68, -43, 11, -42, -10, -42, -23, 83, -15, -38, 27, 29, -12, 76, 9, 63, 55, 55, -43}
{-79, -27, -18, -7, -54, 99, -12, 14, -84, -20, 100, 84, -45, 16, 95, 6, 68, 5, -61, 57}
{1, 62, 66, 56, 26, 66, 13, 61, 70, 53, 73, 66, 38, 85, 19, 14, 99, 70, 28, 49}
Returns: 39623.25
{-6, -50, 85, 96, 75, -15, 46, -93, 43, 69, 53, -30, -72, 36, 44, -81, -56, -83, -33, 97}
{19, 56, -28, 39, 7, -95, -25, 92, -62, -62, 87, -4, -75, 62, 12, 94, 28, 60, 10, -4}
{29, 18, 5, 94, 34, 95, 74, 28, 50, 30, 86, 52, 11, 28, 50, 40, 44, 41, 69, 29}
Returns: 41110.25
{77, 93, -65, -42, 70, -83, -44, -29, -48, -81, 20, -8, -45, 10, -21, 48, -100, 67, 26, -22, -63, -42, -89}
{-62, 79, 85, 24, -72, -74, -24, 42, 14, 24, 42, -63, -60, -74, 86, -22, 1, -68, -70, 55, -68, -83, 65}
{38, 53, 66, 22, 82, 93, 82, 76, 7, 20, 69, 27, 26, 61, 93, 92, 78, 47, 55, 74, 87, 70, 44}
Returns: 51423.0
{-93, 9, 82, -46, -84, -32, 21, 56, 57, -74, 28, -99, -87, 12, -37, -98, -15, -13, 6, 7, -32, 46, -83}
{-17, 18, 72, -24, 80, -40, -77, 6, -8, -33, 75, 93, 35, 17, 42, -39, 41, -25, -45, 26, -91, 97, -18}
{55, 99, 98, 52, 81, 1, 53, 2, 12, 41, 80, 82, 74, 42, 15, 82, 60, 8, 90, 6, 100, 58, 8}
Returns: 53820.75
{-48, -79, 41, 47, -23, 69, 30, 75, -77, -4, -100, 23, 52, -63, 69, -30, 48, 93, -71, -23, 40, 84, 9, 74, -97}
{-84, -91, 89, 13, -93, -40, -4, -67, 46, -55, 45, 93, 79, -31, 82, 4, 54, -23, 96, 72, -69, 41, 24, 76, -41}
{14, 80, 39, 80, 28, 73, 99, 9, 28, 80, 58, 42, 95, 74, 9, 31, 9, 21, 70, 34, 88, 20, 12, 4, 66}
Returns: 49910.0
{-96, -33, 21, 16, -14, -98, -7, 80, -53, 44, -93, 79, -77, -68, -42, -14, 65, 23, 56, 83, -28, 64, 40, 98}
{-18, -42, -65, 54, -100, -52, 87, -48, 38, -55, 79, -89, 8, -18, -33, -90, 71, 88, 3, 85, 18, -93, 11, -16}
{69, 28, 95, 41, 8, 13, 45, 32, 79, 64, 34, 84, 26, 36, 89, 8, 94, 36, 69, 57, 59, 79, 80, 90}
Returns: 50509.25
{-52, 70, 34, -34, 13, -77, -49, -28, 85, -78, -48, 55, -47, 5, 13, -7, 71, 77, -21, 93, 25, 25}
{36, 75, -6, -88, 13, -8, 52, 62, -9, -88, -21, -98, -18, -64, -92, -22, -52, 74, -30, -10, 93, -82}
{5, 10, 47, 30, 72, 90, 10, 21, 15, 11, 4, 70, 58, 28, 31, 47, 58, 56, 92, 36, 1, 95}
Returns: 33919.0
{93, -97, -34, -21, 77, 89, -67, 89, 82, -65, -16, 8, 54, 4, -92, 2, 22, 41, 90, 44, 80, -60, 6, -12, 26}
{39, -51, 85, -32, 42, -12, -76, 69, 32, -30, -11, -92, 23, -74, 9, -78, -10, -81, 2, -66, -78, 70, -43, -8, -80}
{42, 14, 98, 99, 29, 37, 32, 4, 63, 40, 34, 90, 98, 29, 39, 5, 4, 65, 59, 5, 76, 61, 63, 25, 64}
Returns: 45682.25
{-73, 30, 80, -29, 0, 7, -21, -69, 38, 98, 11, -43, -77, 73, -72, 10, 66, 25, 32, 65, -1, -53, -29, 53, -41}
{22, 98, 43, -65, -8, -100, 22, 14, -49, -15, 30, 63, 15, -66, 86, 13, 81, 58, -78, -15, 35, 83, -77, 53, 1}
{7, 40, 4, 70, 37, 73, 43, 21, 24, 88, 65, 12, 75, 27, 90, 70, 38, 50, 52, 91, 74, 39, 23, 35, 11}
Returns: 43804.25
{59, 66, 84, 98, -15, -30, 87, 37, 36, -52, -94, -38, -57, -6, -8, -94, -6, 6, -19, -48, -18}
{43, -77, -3, -69, 5, 44, 69, -20, 74, -51, 50, -58, -65, -28, -10, 47, 96, -22, -29, -43, -94}
{45, 23, 84, 61, 54, 43, 28, 93, 80, 4, 90, 55, 20, 82, 57, 98, 77, 22, 63, 7, 89}
Returns: 47927.5
{91, 10, -1, -2, 3, 31, -92, -32, -14, 27, -6, 46, 82, 81, 13, 27, 42, 12, 13, 8, -2}
{-81, -83, -24, 92, 52, 59, 69, 86, -50, -40, -61, 42, 56, 33, 52, -6, -63, -41, -95, 57, 87}
{19, 38, 8, 44, 74, 4, 83, 69, 83, 71, 67, 68, 67, 83, 86, 29, 55, 98, 24, 25, 94}
Returns: 39309.75
{-11, 22, -35, 36, -84, 55, -48, 96, -53, 73, -37, -73, -100, -83, 47, -75, -84, 94, -40, -98, -80, 5}
{96, -34, -94, 22, -12, 78, -79, -84, 51, 97, 2, 58, 99, -14, 39, -73, 10, -86, -73, -52, 41, -29}
{93, 6, 8, 30, 14, 53, 77, 55, 59, 15, 86, 38, 23, 35, 11, 20, 45, 75, 13, 31, 24, 82}
Returns: 38693.5
{64, 3, -11, -23, -48, -75, 79, 40, -63, 15, 37, 88, 13, -41, 22, 91, 44, -93, 24, 85, 77, 58, 87}
{-80, 4, -22, 87, 98, -84, 35, 86, -94, -15, 10, -33, 27, 74, -69, 25, 46, -47, -22, -83, 16, 13, 61}
{44, 1, 73, 60, 90, 30, 46, 64, 88, 97, 90, 82, 53, 14, 12, 17, 6, 3, 61, 60, 95, 40, 82}
Returns: 47035.75
{-63, -53, 95, -53, 76, 33, 12, 4, 87, -33, -39, 19, -4, 25, -88, -76, -94, 68, 52, 59}
{66, 68, 83, 56, 1, 93, -60, 43, 53, 20, -20, -87, -43, 61, -34, 36, -75, 42, 34, 75}
{23, 43, 19, 77, 4, 73, 59, 94, 76, 21, 62, 8, 41, 18, 43, 89, 13, 63, 83, 3}
Returns: 32839.25
{94, 80, 30, 38, -92, -70, -77, -31, 71, -51, 3, 63, 42, 50, 19, 43, -58, -15, -16, 59, -80, -90, 60, -28}
{24, -4, 85, -46, -2, 38, -27, 80, 97, -100, 37, 100, 50, 81, 59, 19, 66, 63, 15, -58, 97, 49, -23, 71}
{69, 9, 44, 35, 36, 75, 78, 41, 95, 79, 38, 12, 77, 47, 6, 90, 37, 6, 84, 79, 82, 32, 97, 79}
Returns: 56611.25
{-64, -11, 24, 85, 40, -39, -5, -34, -100, 15, 0, 79, -4, -27, 13, -60, -44, 33, 6, 58}
{-35, -68, 45, 58, 31, -60, 82, 96, 78, -83, -18, -60, -35, 79, -2, 75, -30, 80, 50, -35}
{49, 62, 22, 13, 14, 100, 32, 67, 93, 11, 97, 97, 95, 74, 4, 7, 10, 89, 28, 34}
Returns: 42036.0
{-15, -29, -97, -1, -97, -44, -45, -67, 4, -33, -72, -32, 94, -99, 45, -1, -96, 100, 86, -47, -83, -95, 4, -91, -47}
{55, 14, 47, -13, 52, -26, 27, -13, -96, 2, -85, -47, -20, 31, -35, -27, -26, -73, -95, 31, -61, -16, 15, 75, -86}
{33, 43, 37, 46, 59, 57, 93, 99, 99, 23, 33, 77, 85, 90, 52, 64, 77, 94, 41, 82, 82, 44, 4, 81, 14}
Returns: 52155.5
{29, 18, -77, 37, 40, 22, 81, 56, -95, 78, -33, -28, 100, -28, -70, 25, 46, -48, -94, -68, -33, -98, -19, 27}
{-92, 66, 100, 76, 26, -59, 31, -66, -29, -72, -55, 32, 85, -89, 81, -60, -5, 8, 30, 50, 6, 34, -7, 46}
{61, 42, 83, 56, 1, 5, 43, 60, 34, 41, 28, 42, 62, 46, 52, 38, 55, 88, 27, 73, 21, 22, 41, 4}
Returns: 40500.5
{19, -76, 23, 78, 35, -37, 8, 13, 10, -5, -72, 56, -23, -70, -6, -84, -3, -62, 84, 67, -22, 32, 90, -52}
{-61, 14, -45, 35, -91, -58, 96, 60, -98, 23, 96, 58, 80, 53, 2, -88, 4, 81, -22, 25, 43, -79, -86, 67}
{65, 100, 68, 20, 57, 84, 74, 69, 67, 44, 72, 38, 70, 39, 92, 90, 100, 88, 94, 21, 40, 50, 7, 97}
Returns: 55017.0
{65, 49, -41, 69, 40, 44, 38, -59, -55, 17, 73, -69, 78, 35, 78, -26, -34, -12, -73, 41}
{-65, -93, 22, -69, -90, -13, 4, -42, -99, -7, -98, 11, 33, 50, -100, -89, 72, -54, 67, 69}
{53, 91, 46, 46, 50, 76, 86, 4, 98, 59, 1, 44, 14, 72, 10, 68, 68, 7, 16, 88}
Returns: 41461.25
{-82, -86, -42, 0, 60, -36, -72, 69, 65, -5, -100, 87, -20, -79, -29, 13, -10, 78, 74, 56, -23, 27, -85}
{8, -65, -11, -22, 25, -88, 95, -88, -37, -72, 82, 48, -60, -82, -22, 22, -100, -94, 35, -87, 84, -91, -91}
{26, 8, 97, 39, 79, 49, 14, 36, 72, 82, 69, 41, 98, 66, 92, 66, 98, 55, 56, 69, 47, 95, 52}
Returns: 45021.5
{3, 6, 10, 12}
{4, 11, -1, -7}
{2, 4, 6, 8}
Returns: 116.0
{3, 6, 10, 12 }
{4, 11, -1, -7 }
{2, 4, 6, 8 }
Returns: 116.0
{2, 4, 3, -2, -2, -1, -10 }
{2, 2, 1, 2, 2, 2, 1 }
{2, 2, 2, 2, 1, 3, 1 }
Returns: 19.0
{0, 0, 0, 0 }
{1, 3, 2, 5 }
{32, 43, 43, 86 }
Returns: 7712.0
{-100, 100, 100, 2, 3, 4, 5 }
{10, 11, 12, 10, 10, 10, 10 }
{1, 99, 99, 99, 99, 99, 99 }
Returns: 17445.0
{3, 6, 10, 12, 4, 2, 5, 89, -38, -45, -99 }
{4, 11, -1, -7, 87, 56, 33, 45, -67, -10, -89 }
{2, 4, 6, 8, 50, 45, 78, 89, 90, 98, 97 }
Returns: 35905.5
{3, 6, 10, 12, 4, 2, 5, 89, -38, -45, -99, 67, 89, 34, -98, -99, -56, -34 }
{4, 11, -1, -7, 87, 56, 33, 45, -67, -10, -89, -56, -43, -2, 67, 45, 3, 4 }
{2, 4, 6, 8, 50, 45, 78, 89, 90, 98, 97, 5, 5, 80, 95, 93, 82, 45 }
Returns: 49179.5
{5, 10, 7 }
{3, 3, 2 }
{5, 5, 2 }
Returns: 46.75
{3 }
{3 }
{1 }
Returns: 1.0