Problem Statement
You will be given the threshold distance R and the positions and velocities of the aircraft in 4
Definition
- Class:
- Aircraft
- Method:
- nearMiss
- Parameters:
- int[], int[], int[], int[], int
- Returns:
- String
- Method signature:
- String nearMiss(int[] p1, int[] v1, int[] p2, int[] v2, int R)
- (be sure your method is public)
Notes
- The distance between two points (x1, y1, z1) and (x2, y2, z2) is given by sqrt((x1-x2)2 + (y1-y2)2 + (z1-z2)2).
Constraints
- p1, v1, p2 and v2 will contain exactly 3 elements.
- Each element of p1, v1, p2 and v2 will be between -10000 and 10000, inclusive.
- R will be between 0 and 10000, inclusive.
Examples
{15,50,5}
{25,1,0}
{161,102,9}
{-10,-10,-1}
10
Returns: "YES"
At time 4, the first aircraft will be at position {115,54,5} and the second at {121,62,5}, which is the first point in time at which they are exactly 10 distance units apart.
{0,0,0}
{2,2,0}
{9,0,5}
{-2,2,0}
5
Returns: "YES"
At time 2.25, aircraft 1 will be at {4.5, 4.5, 0} and aircraft 2 at {4.5, 4.5, 5}, exactly a distance of 5 units apart.
{0,0,0}
{-2,2,0}
{9,0,5}
{2,2,0}
5
Returns: "NO"
The aircraft are flying away from each other here, so the distance always increases with time.
{-4921,250,5852}
{-2,1,-2}
{-2,-1729,-9307}
{-2,0,0}
9864
Returns: "YES"
{-6987,-881,-5232}
{0,-2,-2}
{9835,-872,8837}
{-1,-2,-4}
8755
Returns: "YES"
{7492,131,-2802}
{0,1,1}
{602,-9362,9112}
{1,3,0}
6444
Returns: "YES"
{-9760,-689,6267}
{2,2,-2}
{7881,-1423,4867}
{0,1,-2}
8660
Returns: "YES"
{-2838,-7940,-2936}
{1,1,-2}
{532,3850,9590}
{1,0,-3}
3410
Returns: "YES"
The closest approach of the aircraft occurs at time 12,158
{-4921,250,5852}
{-2,1,-2}
{-2,-1729,-9307}
{-2,0,0}
9863
Returns: "NO"
{-6987,-881,-5232}
{0,-2,-2}
{9835,-872,8837}
{-1,-2,-4}
8754
Returns: "NO"
{7492,131,-2802}
{0,1,1}
{602,-9362,9112}
{1,3,0}
6443
Returns: "NO"
{-9760,-689,6267}
{2,2,-2}
{7881,-1423,4867}
{0,1,-2}
8659
Returns: "NO"
{-2838,-7940,-2936}
{1,1,-2}
{532,3850,9590}
{1,0,-3}
3409
Returns: "NO"
{-8509,9560,345}
{-89,-33,62}
{-5185,-1417,2846}
{-58,24,26}
8343
Returns: "NO"
{-8509,9560,345}
{-89,-33,62}
{-5185,-1417,2846}
{-58,24,26}
8344
Returns: "YES"
A near miss occurs between times 111 and 112
{-8837,-2570,-3892}
{22,45,-29}
{9503,1162,7241}
{-95,-9,-66}
7116
Returns: "NO"
{-8837,-2570,-3892}
{22,45,-29}
{9503,1162,7241}
{-95,-9,-66}
7117
Returns: "YES"
{872,-4636,-3909}
{68,46,11}
{7185,703,1529}
{-88,-7,96}
8890
Returns: "NO"
{872,-4636,-3909}
{68,46,11}
{7185,703,1529}
{-88,-7,96}
8891
Returns: "YES"
{-7163,-371,-2459}
{-59,-41,-14}
{-2398,-426,-5487}
{-43,27,67}
5410
Returns: "NO"
The aircraft almost have a near miss between times 15 and 16, but stay just outside the threshold distance.
{-7163,-371,-2459}
{-59,-41,-14}
{-2398,-426,-5487}
{-43,27,67}
5411
Returns: "YES"
{7448,-4019,7503}
{80,81,-74}
{9487,320,7057}
{30,-17,80}
3643
Returns: "NO"
{7448,-4019,7503}
{80,81,-74}
{9487,320,7057}
{30,-17,80}
3644
Returns: "YES"
{-3524,-430,9848}
{-82,-72,55}
{-7590,-8706,9853}
{-97,-33,37}
7204
Returns: "NO"
{-3524,-430,9848}
{-82,-72,55}
{-7590,-8706,9853}
{-97,-33,37}
7205
Returns: "YES"
{4431,-7298,3341}
{34,71,35}
{906,69,2117}
{72,-81,83}
2010
Returns: "NO"
{4431,-7298,3341}
{34,71,35}
{906,69,2117}
{72,-81,83}
2011
Returns: "YES"
{4274,-3305,1209}
{-19,97,-57}
{-14,5972,857}
{8,-47,-56}
2521
Returns: "NO"
{4274,-3305,1209}
{-19,97,-57}
{-14,5972,857}
{8,-47,-56}
2522
Returns: "YES"
{1645,4417,6355}
{-14,29,-85}
{9948,3104,2174}
{-13,-6,-3}
8813
Returns: "NO"
{3884,-748,6705}
{58,-52,-5}
{-4571,-1177,6318}
{58,-52,-5}
8474
Returns: "NO"
{3884,-748,6705}
{58,-52,-5}
{-4571,-1177,6318}
{58,-52,-5}
8475
Returns: "YES"
{2865,-8636,-5491}
{-72,-79,55}
{1887,-5387,-6267}
{-72,-79,55}
3480
Returns: "NO"
{2865,-8636,-5491}
{-72,-79,55}
{1887,-5387,-6267}
{-72,-79,55}
3481
Returns: "YES"
{1774,-4491,7810}
{-12,19,-24}
{2322,3793,9897}
{-12,19,-24}
8560
Returns: "NO"
{1774,-4491,7810}
{-12,19,-24}
{2322,3793,9897}
{-12,19,-24}
10000
Returns: "YES"
The aircraft are here flying with identical velocities, so the distance between them never changes. The distance at time 0 is lower than the threshold, so a near miss is already underway.
{-4628,859,6322}
{-64,-61,-20}
{5633,7426,9547}
{20,-58,75}
8432
Returns: "NO"
{-4628,859,6322}
{-64,-61,-20}
{5633,7426,9547}
{20,-58,75}
8433
Returns: "NO"
{-7593,579,-9146}
{56,-21,55}
{3668,-8134,795}
{-56,82,49}
9451
Returns: "NO"
{-7593,579,-9146}
{56,-21,55}
{3668,-8134,795}
{-56,82,49}
9452
Returns: "YES"
{-2611,6642,4107}
{-95,9,-53}
{-3365,276,-9263}
{-73,-15,52}
9320
Returns: "NO"
{-2611,6642,4107}
{-95,9,-53}
{-3365,276,-9263}
{-73,-15,52}
9321
Returns: "YES"
{-13,-9966,-7414}
{-64,-33,52}
{-7920,-5123,-1713}
{-66,45,89}
8335
Returns: "NO"
{-13,-9966,-7414}
{-64,-33,52}
{-7920,-5123,-1713}
{-66,45,89}
8336
Returns: "NO"
{-777,2791,-952}
{-65,98,-21}
{6929,-7286,1573}
{-10,-69,99}
6257
Returns: "NO"
{-777,2791,-952}
{-65,98,-21}
{6929,-7286,1573}
{-10,-69,99}
6258
Returns: "NO"
{-748,-3746,-65}
{41,-8,-82}
{-3872,9801,4798}
{-34,94,59}
8330
Returns: "NO"
{-748,-3746,-65}
{41,-8,-82}
{-3872,9801,4798}
{-34,94,59}
8331
Returns: "NO"
{-9100,-5265,-8023}
{73,-89,95}
{-7372,-1078,659}
{11,-94,-59}
4251
Returns: "NO"
{-9100,-5265,-8023}
{73,-89,95}
{-7372,-1078,659}
{11,-94,-59}
4252
Returns: "YES"
{-1605,-7199,-4764}
{62,-7,-89}
{-2897,-2402,-5350}
{-29,-72,4}
4701
Returns: "NO"
{-1605,-7199,-4764}
{62,-7,-89}
{-2897,-2402,-5350}
{-29,-72,4}
4702
Returns: "YES"
{3731,8537,5661}
{-70,71,32}
{8701,-1886,-5115}
{28,-13,7}
9766
Returns: "NO"
{3731,8537,5661}
{-70,71,32}
{8701,-1886,-5115}
{28,-13,7}
9767
Returns: "NO"
{0,0,0}
{1,0,0}
{0,0,1}
{0,1,0}
1
Returns: "YES"
{0,0,0}
{1,0,0}
{0,0,1}
{1,0,0}
1
Returns: "YES"
{0, 1, -1}
{3, -3, 3}
{1, -1, 1}
{3, 3, -3}
1
Returns: "YES"
{0, 2856, -2856}
{98, -9996, 9996}
{10000, -2856, 2856}
{98, 9996, -9996}
10000
Returns: "YES"
{0, 10000, -10000}
{3, -3, 3}
{10000, -10000, 10000}
{3, 3, -3}
10000
Returns: "YES"
{0, 10000, -10000}
{7, -7, 7}
{10000, -10000, 10000}
{7, 7, -7}
10000
Returns: "YES"
{-2838, -7940, -2936 }
{1, 1, -2 }
{532, 3850, 9590 }
{1, 0, -3 }
3410
Returns: "YES"
{-7163, -371, -2459 }
{-59, -41, -14 }
{-2398, -426, -5487 }
{-43, 27, 67 }
5410
Returns: "NO"
{0, 0, 0 }
{2, 2, 0 }
{9, 0, 5 }
{-2, 2, 0 }
5
Returns: "YES"
{15, 50, 5 }
{25, 1, 0 }
{161, 102, 9 }
{-10, -10, -1 }
10
Returns: "YES"
{-8509, 9560, 345 }
{-89, -33, 62 }
{-5185, -1417, 2846 }
{-58, 24, 26 }
8344
Returns: "YES"
{-10000, 0, 0 }
{10000, 0, 0 }
{1, 0, 0 }
{0, 0, 0 }
0
Returns: "YES"
{-1000, 0, 0 }
{1, 0, 1000 }
{1000, 0, 0 }
{-1, 0, 1000 }
0
Returns: "YES"
{3731, 8537, 5661 }
{-70, 71, 32 }
{8701, -1886, -5115 }
{28, -13, 7 }
9766
Returns: "NO"
{0, 0, 0 }
{1, 1, 1 }
{10000, 10000, 10000 }
{-1, -1, -1 }
0
Returns: "YES"
{2, 0, 0 }
{0, 0, 0 }
{0, 0, 0 }
{0, 0, 0 }
1
Returns: "NO"
{0, 0, 0 }
{-2, 2, 0 }
{9, 0, 5 }
{2, 2, 0 }
5
Returns: "NO"
{10, 10, 0 }
{-1, 0, 0 }
{-10, -10, 0 }
{0, 0, 0 }
1
Returns: "NO"
{0, 0, 0 }
{0, 0, 0 }
{2, 2, 2 }
{0, 0, 0 }
1
Returns: "NO"
{1, 1, 1 }
{1, 1, 1 }
{-1, -1, -1 }
{-1, -1, -1 }
10000
Returns: "YES"
{-2837, -7940, -2936 }
{1, 1, -2 }
{532, 3850, 9590 }
{1, 0, -3 }
3410
Returns: "YES"
{0, 0, 0 }
{9999, 9999, 0 }
{4, 0, 0 }
{-5555, 5555, 0 }
1
Returns: "NO"
{10000, 0, 0 }
{-10000, 0, 0 }
{-10000, 0, 0 }
{1, 0, 0 }
1
Returns: "YES"
{100, 1000, 10000 }
{15, 9, 8 }
{1200, 1300, 100 }
{9, 8, 17 }
135
Returns: "NO"
{0, 0, 0 }
{0, 0, 1000 }
{0, 0, 2 }
{0, 0, 0 }
1
Returns: "YES"
{0, 0, 0 }
{25, 1, 0 }
{0, 0, 0 }
{-10, -10, -1 }
0
Returns: "YES"
{1, 1, 0 }
{0, 10000, 0 }
{1, 3, 0 }
{0, -10000, 0 }
1
Returns: "YES"
{1, 1, 1 }
{1, 1, 1 }
{0, 0, 0 }
{1, 1, 1 }
1
Returns: "NO"
{0, 0, 0 }
{0, 0, 0 }
{0, 0, 0 }
{0, 0, 0 }
5
Returns: "YES"
{0, 0, 0 }
{1, 0, 0 }
{0, 0, 2 }
{1, 0, 0 }
1
Returns: "NO"
{-7136, -371, -2459 }
{-59, -41, -14 }
{-2398, -426, -5487 }
{-43, 27, 67 }
5410
Returns: "YES"
{0, 0, 0 }
{1, 0, 0 }
{10, 0, 2 }
{-1, 0, 0 }
1
Returns: "NO"
{0, 0, 0 }
{0, 0, 0 }
{0, 0, 0 }
{0, 0, 0 }
0
Returns: "YES"
{1, 1, 1 }
{0, 0, 0 }
{2, 1, 1 }
{0, 0, 0 }
10
Returns: "YES"
{0, 0, 0 }
{0, 0, 0 }
{0, 0, 1 }
{0, 0, 0 }
0
Returns: "NO"
{-2838, -7940, -2936 }
{1, 1, -2 }
{5323, 3850, 9590 }
{1, 0, -3 }
3
Returns: "NO"
{0, 0, 0 }
{2001, 2000, 0 }
{9000, 0, 5000 }
{-2000, 2000, 0 }
5000
Returns: "YES"
{0, 0, 0 }
{0, 1, 0 }
{2, 0, 0 }
{0, 1, 0 }
1
Returns: "NO"
{-10000, 0, 0 }
{0, 0, 0 }
{10000, 0, 0 }
{-1, 0, 0 }
0
Returns: "YES"
{10000, 10000, 10000 }
{-10000, -10000, -10000 }
{-10000, -10000, -10000 }
{10000, 10000, 10000 }
10000
Returns: "YES"
{0, 0, 0 }
{-2, 2, 0 }
{9, 0, 5 }
{2, 2, 0 }
100
Returns: "YES"
{0, 0, 0 }
{0, 0, 0 }
{-2, 0, 0 }
{10000, 0, 0 }
1
Returns: "YES"
{3731, 8537, 5661 }
{70, 71, 32 }
{8701, -1886, -5115 }
{28, 80, 7 }
10000
Returns: "NO"
{15, 50, 5 }
{25, 1, 0 }
{161, 102, 9 }
{25, 1, 0 }
10
Returns: "NO"
{1, 0, 0 }
{1, 0, 0 }
{0, 0, 0 }
{0, 0, 0 }
1
Returns: "YES"
{1, 0, 0 }
{0, 0, 0 }
{0, 0, 0 }
{0, 0, 0 }
1
Returns: "YES"
{0, 0, 0 }
{-5, 0, 0 }
{5, 0, 0 }
{5, 0, 0 }
5
Returns: "YES"
{0, 0, 0 }
{1, 1, 1 }
{10, 0, 0 }
{1, 1, 1 }
5
Returns: "NO"
{-10000, 0, 0 }
{1, 0, 0 }
{10000, 0, 0 }
{0, 0, 0 }
0
Returns: "YES"
{0, 0, 0 }
{10000, 0, 0 }
{10, 0, 0 }
{-10000, 0, 0 }
1
Returns: "YES"
{0, 0, 0 }
{0, 1, 0 }
{4, 11, 0 }
{0, -1, 0 }
2
Returns: "NO"
{0, 0, 0 }
{0, 0, 0 }
{10, 10, 10 }
{-1, -1, -1 }
2
Returns: "YES"
{0, 0, 0 }
{0, 1, 0 }
{10, 0, 0 }
{1, 0, 0 }
10
Returns: "YES"
{1, 2, 3 }
{1, 2, 3 }
{100, 200, 300 }
{1, 2, 3 }
1
Returns: "NO"
{0, 0, 0 }
{10000, 0, 0 }
{1000, 0, 0 }
{-10000, 0, 0 }
1
Returns: "YES"
{1, 1, 1 }
{1, 1, 1 }
{2, 2, 2 }
{1, 1, 1 }
1
Returns: "NO"
{0, 0, 0 }
{0, 0, 0 }
{2, -1, 0 }
{0, 2, 0 }
2
Returns: "YES"
{0, 0, 0 }
{0, 0, 0 }
{-1, 1, 0 }
{10000, 0, 0 }
1
Returns: "YES"
{0, 0, 0 }
{0, 0, 0 }
{1, 0, 0 }
{1, 0, 0 }
1
Returns: "YES"
{0, 0, 0 }
{0, 1, 0 }
{0, -100, 0 }
{0, 4000, 0 }
1
Returns: "YES"
{0, 0, 0 }
{10000, 0, 0 }
{10, 0, 0 }
{0, 0, 0 }
2
Returns: "YES"
{0, 0, 0 }
{0, 0, 0 }
{1, 0, 0 }
{1, 0, 0 }
2
Returns: "YES"
{0, 0, 0 }
{0, 0, 0 }
{1, 1, 0 }
{-200, 0, 0 }
1
Returns: "YES"
{1771, -1491, 7830 }
{-12, 19, -24 }
{2322, 3793, 9897 }
{-12, 19, -24 }
1000
Returns: "NO"
{-10000, -10000, -10000 }
{0, 0, 1 }
{10000, 10000, 10000 }
{0, 0, 1 }
10000
Returns: "NO"
{10, 10, 10 }
{10, 10, 10 }
{0, 0, 0 }
{0, 0, 0 }
100
Returns: "YES"
{-8509, 9560, 345 }
{1, 2, 3 }
{-5185, -1417, 2846 }
{1, 2, 3 }
8344
Returns: "NO"
{1774, -4491, 7810 }
{-12, 19, -24 }
{2322, 3793, 9897 }
{-12, 19, -24 }
10
Returns: "NO"
{5, 5, 5 }
{1, 0, 0 }
{0, 0, 0 }
{1, 0, 0 }
1
Returns: "NO"
{3, 2, 3 }
{1, 2, 3 }
{1, 2, 3 }
{1, 2, 3 }
1
Returns: "NO"
{0, 0, 0 }
{1, 0, 0 }
{0, 1, 0 }
{1, 1, 0 }
2
Returns: "YES"
{50, 0, 0 }
{0, 0, 0 }
{0, 0, 0 }
{0, 0, 0 }
10
Returns: "NO"
{0, 0, 0 }
{4, 2, 0 }
{2, 0, 0 }
{0, 2, 0 }
1
Returns: "YES"
{0, 0, 0 }
{0, 0, 0 }
{3, 0, 0 }
{0, 0, 0 }
2
Returns: "NO"
{0, 0, 0 }
{0, 1, 1 }
{0, 0, 1 }
{0, 1, -1 }
0
Returns: "YES"
{0, 0, 0 }
{0, 2, 0 }
{2, 0, 0 }
{-5, 2, 0 }
1
Returns: "YES"
{0, 0, 0 }
{2, 2, 0 }
{9, 0, 5 }
{2, 2, 0 }
5
Returns: "NO"
{1774, -4491, 7810 }
{-12, 19, -24 }
{2322, 3793, 9897 }
{-12, 19, -24 }
5000
Returns: "NO"
{0, 0, 0 }
{0, 0, 0 }
{10, 0, 2 }
{0, 0, 0 }
1
Returns: "NO"
{1, 1, 1 }
{1, 1, 1 }
{22, 22, 22 }
{1, 1, 1 }
1
Returns: "NO"
{10, 0, 0 }
{0, 0, 0 }
{0, 0, 0 }
{0, 0, 0 }
1
Returns: "NO"
{31, 87, -51 }
{121, 23, -323 }
{23, -45, -10 }
{28, -13, 7 }
10000
Returns: "YES"
{-5000, -5000, 0 }
{1, 1, 1 }
{5000, -5000, 0 }
{1, 1, 1 }
10
Returns: "NO"
{0, 0, 0 }
{0, 0, 0 }
{0, 0, 10 }
{0, 0, 0 }
2
Returns: "NO"
{10000, 10000, 10000 }
{-9999, -9999, -9999 }
{-10000, -10000, -10000 }
{9998, 9998, 9998 }
100
Returns: "YES"
{0, 0, 0 }
{0, 0, 0 }
{0, 0, 10 }
{0, 0, 0 }
1
Returns: "NO"
{1, 1, 1 }
{1, 1, 1 }
{2, 2, 2 }
{1, 1, 1 }
10
Returns: "YES"
{-2838, -7940, -2936 }
{1, 1, -2 }
{532, 3850, 9590 }
{1, 0, -3 }
5410
Returns: "YES"
{0, 0, 0 }
{0, 0, 0 }
{100, 0, 0 }
{100, 0, 0 }
100
Returns: "YES"
{0, 0, 1 }
{0, 0, 2 }
{0, 0, 5 }
{0, 0, 1 }
1
Returns: "YES"
{0, 0, 0 }
{0, 0, 0 }
{1, 1, 1 }
{0, 0, 0 }
1
Returns: "NO"
{10000, 10000, 1000 }
{10000, -10000, 10000 }
{10000, 10000, -1000 }
{10000, -10000, -10000 }
1999
Returns: "NO"
{0, 0, 0 }
{0, 0, 10000 }
{0, 0, 500 }
{0, 0, -10000 }
1
Returns: "YES"
{0, 0, 0 }
{2, 2, 0 }
{9, 0, 5 }
{0, 2, 0 }
5
Returns: "YES"
{1774, 4491, 7810 }
{0, 0, 0 }
{-2322, 5793, 9897 }
{0, 0, 0 }
10000
Returns: "YES"
{0, 0, 0 }
{0, 0, 0 }
{1000, 0, 0 }
{0, 0, 0 }
1
Returns: "NO"
{0, 0, 0 }
{1000, 1000, 1000 }
{0, 0, 0 }
{-1000, -1000, -1000 }
1
Returns: "YES"
{0, 0, 0 }
{-10000, -10000, -10000 }
{0, 0, 0 }
{10000, 10000, 10000 }
10000
Returns: "YES"
{4336, 46, -2571 }
{5882, 3100, 9715 }
{121, 1734, -5770 }
{5593, 7870, 6705 }
9755
Returns: "YES"
{0, 0, 0 }
{1, 1, 1 }
{0, 0, 100 }
{1, 1, 1 }
1
Returns: "NO"
{0, 0, 0 }
{100, 100, 0 }
{442, 0, 10 }
{-100, 100, 0 }
10
Returns: "YES"
{10000, 10000, 10000 }
{-10000, -10000, -10000 }
{-10000, -10000, -10000 }
{10000, 10000, 10000 }
0
Returns: "YES"
{-579, -553, -631 }
{-782, -729, -833 }
{-784, -774, -588 }
{-605, -962, -701 }
309
Returns: "YES"
{0, 0, 0 }
{5, 5, 5 }
{4, 4, 0 }
{5, 5, 5 }
5
Returns: "NO"
{5, 7, 8 }
{4, 1, -7 }
{-4, 5, 7 }
{4, 1, -7 }
4
Returns: "NO"
{10000, 10000, 1000 }
{10000, -10000, 10000 }
{10000, 10000, -1000 }
{10000, -10000, -10000 }
2000
Returns: "YES"
{-1, -1, 0 }
{10000, 10000, 0 }
{1, -1, 0 }
{-10000, 10000, 0 }
0
Returns: "YES"
{-2838, -7940, -2936 }
{1, -21, -2 }
{5, 3890, 9590 }
{9, -32, -3 }
341
Returns: "NO"
{1, 1, 1 }
{1, 2, 3 }
{2, 3, 3 }
{-1, -2, -3 }
3
Returns: "YES"
{0, 0, 0 }
{0, 0, 0 }
{0, 10, 0 }
{10, -10, 0 }
9
Returns: "YES"
{0, 0, 0 }
{1, 1, 0 }
{1, 2, 0 }
{0, 0, 0 }
0
Returns: "NO"
{0, 0, 0 }
{500, 0, 0 }
{1, 0, 0 }
{-500, 0, 0 }
0
Returns: "YES"