Statistics

Problem Statement for "PirateTreasure"

Problem Statement

The great pirate Silver has buried a treasure on a tropical island. You managed to find a map of the island with an X marking a spot on the island, and a set of instructions. Each instruction is of the form "walk A steps in the direction B". If you start at the X and follow the instructions in the given order, at the end you will arrive at the location where the treasure is buried.

Your evil twin has a copy of the map, and has already started to follow the instructions. To beat him, you must find the location of the treasure and walk straight to that place.

You will be given the set of instructions as a int[] steps and a String[] directions. Element i of directions corresponds to element i of steps. Write a method that will find the location of the treasure, and return the straight-line distance (in steps) from the place where you start to the place where the treasure is buried.

Each direction in directions will be one of the eight basic directions on a compass. Refer to the image below for clarification.

Definition

Class:
PirateTreasure
Method:
getDistance
Parameters:
int[], String[]
Returns:
double
Method signature:
double getDistance(int[] steps, String[] directions)
(be sure your method is public)

Notes

  • The returned value must have an absolute or relative error less than 1e-9.
  • Assume that the island lies on a plane, and that it is large enough to accomodate the entire walk.
  • Note that making a step northwest is not the same as making a step north and then a step west. See Example 3.
  • The Euclidean distance between two points A=(ax,ay) and B=(bx,by) in a plane is equal to sqrt( (ax-bx)^2 + (ay-by)^2 ).

Constraints

  • steps will contain between 1 and 50 elements, inclusive.
  • Each element in steps will be between 1 and 50, inclusive.
  • directions will contain the same number of elements as steps.
  • Each element of directions will be one of NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, and SOUTHWEST.

Examples

  1. {1}

    {"NORTH"}

    Returns: 1.0

    After one step north, you will be (surprisingly) one step away from where you started.

  2. {2}

    {"NORTHWEST"}

    Returns: 2.0

    Two steps northwest will take you two steps away from where you started.

  3. {3,10,7}

    {"EAST","WEST","EAST"}

    Returns: 0.0

    After following these instructions you'll end exactly where you started.

  4. {34,48,34}

    {"NORTH","SOUTHWEST","EAST"}

    Returns: 0.08326112068522587

    Following these instructions won't get you exactly to the same place where you started, but you will be pretty close.

  5. {2,2,2,1}

    {"NORTH","NORTH","NORTH","NORTHWEST"}

    Returns: 6.744277676240694

    After six steps north and one step northwest, your straight line distance from where you started is a little less than seven steps.

  6. {47}

    {"NORTH"}

    Returns: 47.0

  7. {47}

    {"NORTHWEST"}

    Returns: 47.00000000000001

  8. {47}

    {"NORTHEAST"}

    Returns: 47.00000000000001

  9. {47}

    {"SOUTH"}

    Returns: 47.0

  10. {47}

    {"SOUTHWEST"}

    Returns: 47.00000000000001

  11. {47}

    {"SOUTHEAST"}

    Returns: 47.00000000000001

  12. {47}

    {"EAST"}

    Returns: 47.0

  13. {47}

    {"WEST"}

    Returns: 47.0

  14. {31,21,44,32,40,28,29,34,50,48,21,16,34,17,17,19,21,9,41,32,12,45,16,10,12,41,39,25,28,34,36,10,6,31,43,46,8,22,31,7,21,4,24,6,22,42,25,42,50,17}

    {"SOUTHWEST","NORTH","NORTH","NORTHWEST","NORTH","WEST","NORTHWEST","NORTH","NORTHWEST","SOUTH","NORTH","EAST","NORTHEAST","SOUTHEAST","WEST","SOUTH","NORTH","NORTH","NORTHEAST","NORTHWEST","WEST","NORTH","NORTH","EAST","SOUTH","SOUTHEAST","SOUTHWEST","NORTHWEST","NORTH","SOUTHEAST","NORTHWEST","SOUTHEAST","EAST","NORTHWEST","EAST","EAST","NORTHWEST","NORTH","EAST","NORTHEAST","SOUTH","EAST","NORTHWEST","SOUTHEAST","SOUTHWEST","NORTH","NORTH","SOUTHWEST","NORTH","NORTHEAST"}

    Returns: 407.4737826076153

  15. {28,44,37,12,49,3,17,45,42,16,42,48,39,2,15,3,36,6,49,33,47,6,27,22,36,25,12,28,24,26,9,1,22,47,13,22,49,31,16,41,46,9,40,34,11,6,37,46,12,37}

    {"NORTHWEST","WEST","NORTH","NORTHEAST","EAST","WEST","EAST","SOUTHEAST","EAST","WEST","SOUTHWEST","NORTH","EAST","SOUTH","SOUTHEAST","NORTHEAST","NORTH","WEST","NORTH","WEST","NORTHWEST","NORTHEAST","EAST","SOUTHWEST","SOUTH","NORTHEAST","NORTHEAST","SOUTH","NORTHWEST","SOUTH","NORTHEAST","SOUTH","NORTHEAST","NORTHEAST","SOUTHEAST","NORTH","NORTHWEST","SOUTH","SOUTHEAST","WEST","SOUTH","NORTHWEST","NORTH","NORTHWEST","SOUTHEAST","SOUTHEAST","SOUTH","SOUTHEAST","SOUTHWEST","SOUTH"}

    Returns: 73.9362381853827

  16. {4,45,2,42,41,34,42,43,3,39,8,11,16,30,13,1,34,44,19,31,36,42,49,46,23,8,21,26,31,9,29,34,5,31,25,48,14,18,42,18,9,50,29,24,31,43,27,15,39,45}

    {"NORTH","NORTHWEST","SOUTHEAST","NORTH","NORTHEAST","SOUTH","SOUTHEAST","NORTH","SOUTHWEST","NORTH","NORTHEAST","NORTH","WEST","SOUTH","NORTHEAST","NORTHEAST","EAST","SOUTHEAST","NORTHWEST","SOUTHEAST","SOUTHEAST","WEST","SOUTHWEST","SOUTH","WEST","SOUTHEAST","NORTHWEST","SOUTHEAST","WEST","NORTHWEST","SOUTHEAST","WEST","NORTHEAST","NORTHEAST","NORTH","SOUTHWEST","SOUTHEAST","SOUTHEAST","SOUTHWEST","NORTHWEST","SOUTHEAST","WEST","NORTHWEST","SOUTHEAST","NORTHEAST","SOUTHWEST","WEST","NORTH","NORTHWEST","NORTH"}

    Returns: 155.07559407168844

  17. {48,47,47,47,4,46,26,6,23,23,45,44,16,12,50,8,48,17,6,27,16,41,8,31,46,48,41,1,48,9,22,45,7,18,43,13,15,18,18,37,42,14,32,10,25,31,17,23,47,22}

    {"NORTHEAST","SOUTHEAST","SOUTHWEST","NORTHWEST","WEST","NORTHWEST","NORTHEAST","EAST","EAST","SOUTH","EAST","SOUTH","NORTHWEST","SOUTHWEST","NORTH","NORTHEAST","SOUTHWEST","SOUTHWEST","NORTHWEST","WEST","SOUTHWEST","WEST","WEST","SOUTHEAST","NORTHEAST","SOUTHEAST","NORTHWEST","NORTHEAST","WEST","SOUTHEAST","EAST","NORTHWEST","NORTHEAST","NORTHEAST","NORTHEAST","NORTHWEST","SOUTH","SOUTHWEST","WEST","NORTHWEST","WEST","SOUTHEAST","SOUTHWEST","NORTHWEST","NORTHEAST","SOUTHWEST","SOUTH","EAST","NORTH","SOUTHWEST"}

    Returns: 174.5590186542821

  18. {17,5,22,16,42,36,41,11,15,41,28,19,38,10,37,45,38,16,7,3,8,25,15,34,40,31,13,49,11,11,17,27,16,41,44,9,26,35,22,42,25,49,10,14,11,48,10,50,14,19}

    {"SOUTHEAST","NORTHEAST","EAST","SOUTHEAST","SOUTH","NORTHWEST","WEST","NORTHWEST","WEST","NORTH","NORTH","NORTHWEST","EAST","SOUTH","WEST","NORTHEAST","WEST","SOUTH","NORTH","EAST","EAST","NORTH","SOUTHEAST","NORTH","SOUTH","SOUTHEAST","NORTHWEST","SOUTHEAST","NORTH","EAST","NORTHWEST","SOUTHEAST","NORTH","WEST","SOUTH","SOUTHWEST","NORTH","NORTHEAST","SOUTHEAST","WEST","NORTHEAST","SOUTHEAST","NORTH","NORTHWEST","NORTH","NORTH","SOUTH","NORTH","SOUTH","SOUTH"}

    Returns: 103.63584290484768

  19. {43,16,50,22,36,9,11,6,26,49,40,13,43,45,44,2,7,8,10,36,3,31,48,2,38,6,40,27,22,45,34,17,12,35,38,50,43,1,5,21,1,46,35,43,42,29,46,48,36,6}

    {"NORTHWEST","NORTH","SOUTHEAST","NORTHEAST","SOUTH","SOUTHWEST","SOUTH","EAST","EAST","SOUTHEAST","SOUTHWEST","SOUTH","SOUTHEAST","SOUTH","SOUTH","NORTH","SOUTHWEST","NORTHWEST","SOUTHWEST","NORTH","SOUTH","NORTHWEST","EAST","NORTHEAST","SOUTH","SOUTHEAST","SOUTHWEST","WEST","SOUTH","NORTHWEST","EAST","SOUTHWEST","NORTHWEST","SOUTH","EAST","SOUTHWEST","WEST","NORTHWEST","NORTHEAST","SOUTHEAST","EAST","EAST","NORTH","SOUTH","NORTHEAST","SOUTH","SOUTHWEST","EAST","SOUTHWEST","NORTH"}

    Returns: 380.6284387749282

  20. {48,37,28,38,9,40,19,9,47,50,44,11,16,22,12,14,40,39,50,39,16,48,15,32,24,29,19,18,34,19,26,31,7,6,20,15,47,38,25,43,40,21,5,5,42,16,19,31,4,20}

    {"EAST","EAST","SOUTHWEST","SOUTHEAST","WEST","WEST","SOUTHEAST","SOUTH","EAST","SOUTHWEST","SOUTH","EAST","NORTHEAST","SOUTHWEST","WEST","SOUTHEAST","EAST","SOUTHEAST","SOUTH","WEST","WEST","EAST","WEST","SOUTH","NORTHEAST","NORTH","SOUTHWEST","EAST","EAST","NORTHWEST","SOUTH","SOUTHEAST","WEST","NORTH","NORTHEAST","EAST","WEST","WEST","NORTHWEST","EAST","SOUTHWEST","SOUTHWEST","SOUTHWEST","EAST","NORTH","SOUTH","SOUTHWEST","WEST","NORTH","WEST"}

    Returns: 269.2183988586096

  21. {49,42,2,10,27,36,12,29,41,44,36,14,49,15,6,37,45,40,43,48,32,45,42,12,29,37,33,13,46,41,36,46,34,37,5,10,25,16,40,15,11,27,30,10,41,38,48,37,29,40}

    {"SOUTH","SOUTHEAST","WEST","SOUTHWEST","NORTH","SOUTHWEST","EAST","EAST","SOUTHWEST","WEST","SOUTHWEST","SOUTHWEST","EAST","NORTHWEST","NORTH","NORTHEAST","NORTH","SOUTHWEST","SOUTH","SOUTHEAST","EAST","NORTH","NORTHWEST","NORTHEAST","SOUTHEAST","SOUTH","WEST","SOUTHWEST","NORTHWEST","SOUTHEAST","EAST","SOUTHWEST","NORTHEAST","SOUTHEAST","NORTH","NORTHEAST","NORTHWEST","WEST","NORTH","EAST","EAST","SOUTHWEST","NORTHEAST","SOUTHEAST","SOUTHEAST","NORTHEAST","WEST","SOUTHEAST","WEST","SOUTH"}

    Returns: 191.04361351225765

  22. {25,14,14,32,38,17,31,49,17,16,40,7,38,42,37,36,16,30,1,44,6,28,18,46,11,21,39,6,16,10,29,40,23,44,23,11,10,3,11,27,20,1,33,7,44,21,45,10,3,45}

    {"EAST","SOUTH","NORTHWEST","NORTHEAST","SOUTHEAST","WEST","NORTHEAST","NORTHWEST","SOUTHEAST","NORTH","SOUTHWEST","SOUTHEAST","WEST","SOUTHWEST","NORTHWEST","NORTHEAST","SOUTHWEST","SOUTHWEST","NORTHEAST","SOUTH","SOUTHWEST","NORTHEAST","SOUTHEAST","WEST","SOUTHWEST","SOUTHWEST","NORTHWEST","NORTHEAST","SOUTH","SOUTHEAST","SOUTH","NORTHEAST","NORTHWEST","SOUTHWEST","SOUTHWEST","EAST","SOUTHWEST","EAST","WEST","NORTHWEST","EAST","SOUTH","EAST","EAST","WEST","WEST","NORTH","SOUTHWEST","SOUTHWEST","NORTHEAST"}

    Returns: 174.1685508706067

  23. {18,45,23,17,28,30,9,32,28,11,39,23,17,4,40,43,22,42,13,33,33,42,44,43,20,30,17,20,2,11,46,21,7,21,37,35,50,47,18,27,9,8,50,25,12,41,19,35,32,34}

    {"SOUTH","NORTHWEST","NORTHEAST","NORTHEAST","WEST","WEST","NORTHWEST","SOUTHEAST","SOUTHWEST","SOUTHWEST","WEST","SOUTH","EAST","NORTHEAST","WEST","SOUTHWEST","SOUTHWEST","SOUTHWEST","SOUTH","WEST","SOUTHEAST","SOUTHEAST","NORTH","SOUTHWEST","EAST","NORTHWEST","EAST","NORTH","NORTH","WEST","SOUTH","SOUTH","NORTH","SOUTHEAST","SOUTHEAST","WEST","SOUTHWEST","WEST","SOUTHEAST","NORTH","SOUTH","SOUTHWEST","SOUTHWEST","NORTHEAST","EAST","SOUTH","EAST","NORTHEAST","NORTH","NORTHWEST"}

    Returns: 348.0377259288232

  24. {28,46,44,31,6,30,46,4,34,46,35,22,13,29,35,43,32,42,16,9,10,33,22,40,17,26,50,4,9,38,39,36,35,34,18,40,13,14,45,49,11,29,22,24,9,6,18,40,47,35}

    {"SOUTHWEST","NORTH","EAST","SOUTH","WEST","WEST","NORTH","NORTHEAST","EAST","NORTH","SOUTHEAST","EAST","NORTHEAST","SOUTHEAST","EAST","SOUTHEAST","EAST","NORTHEAST","SOUTHWEST","EAST","SOUTHWEST","WEST","SOUTHWEST","WEST","NORTH","NORTH","NORTHWEST","SOUTHEAST","NORTHEAST","SOUTHEAST","SOUTHEAST","EAST","SOUTHEAST","SOUTH","NORTHWEST","SOUTHEAST","NORTHEAST","NORTHWEST","WEST","NORTH","NORTHEAST","SOUTHEAST","WEST","SOUTHWEST","NORTHEAST","SOUTHEAST","NORTHWEST","NORTHWEST","WEST","EAST"}

    Returns: 146.72231125749315

  25. {34,11,4,19,8,18,13,11,1,47,15,18,33,24,3,44,33,26,4,41,38,24,34,29,42,50,34,25,27,18,37,11,30,42,31,37,9,43,50,11,42,14,28,26,37,31,20,22,8,25}

    {"WEST","SOUTHWEST","SOUTHEAST","NORTH","NORTHWEST","NORTHEAST","SOUTH","NORTHEAST","NORTH","NORTH","SOUTH","SOUTHEAST","SOUTHWEST","NORTH","EAST","SOUTHWEST","NORTHWEST","SOUTHEAST","NORTH","EAST","SOUTHEAST","SOUTH","SOUTHEAST","SOUTHEAST","SOUTH","SOUTH","WEST","NORTH","EAST","EAST","SOUTHWEST","SOUTHEAST","NORTHEAST","NORTHWEST","SOUTHEAST","SOUTH","SOUTH","NORTHWEST","EAST","SOUTH","NORTHWEST","NORTHWEST","NORTH","SOUTHEAST","NORTHEAST","WEST","NORTHWEST","SOUTH","SOUTHWEST","NORTHWEST"}

    Returns: 94.33483432192006

  26. {46,10,24,3,5,5,50,34,5,19,20,29,50,1,4,30,6,21,7,24,4,10,20,43,49,26,28,6,25,22,25,22,31,48,26,38,2,25,21,8,43,41,36,45,43,41,24,48,11,32}

    {"WEST","EAST","NORTH","NORTH","NORTHEAST","NORTHEAST","SOUTH","SOUTHEAST","SOUTHEAST","NORTHWEST","SOUTHWEST","NORTHWEST","NORTH","SOUTHWEST","SOUTH","SOUTHEAST","SOUTH","SOUTHWEST","SOUTH","NORTH","EAST","NORTHEAST","NORTH","SOUTH","EAST","EAST","EAST","SOUTHEAST","SOUTHEAST","NORTH","NORTH","SOUTHWEST","EAST","NORTH","SOUTHWEST","NORTH","NORTHEAST","WEST","SOUTHEAST","WEST","NORTH","NORTHWEST","NORTH","NORTH","EAST","SOUTH","SOUTHEAST","NORTHWEST","NORTH","NORTHWEST"}

    Returns: 212.14688078813836

  27. {10,29,48,50,48,2,32,8,31,14,29,43,16,19,43,15,16,33,32,1,18,43,45,22,19,29,48,39,38,48,26,50,26,23,49,23,24,31,31,6,44,11,48,11,29,42,27,46,24,9}

    {"SOUTHWEST","NORTHEAST","NORTH","NORTHEAST","NORTHWEST","EAST","EAST","SOUTHWEST","NORTHEAST","SOUTH","WEST","WEST","NORTHEAST","NORTH","WEST","SOUTH","SOUTH","NORTH","SOUTH","SOUTHEAST","WEST","NORTH","WEST","SOUTHWEST","EAST","WEST","WEST","SOUTH","WEST","NORTHEAST","SOUTHEAST","SOUTH","SOUTHWEST","SOUTHEAST","SOUTHEAST","EAST","SOUTH","SOUTH","NORTHEAST","EAST","EAST","NORTHEAST","SOUTHEAST","NORTHWEST","NORTHEAST","SOUTHEAST","SOUTHWEST","SOUTHEAST","SOUTHEAST","WEST"}

    Returns: 133.58688918223558

  28. {29,30,50,34,18,44,22,48,17,3,2,46,34,47,27,9,9,31,4,33,45,10,17,44,27,42,1,3,27,43,18,6,24,17,41,43,13,12,42,31,16,44,27,49,42,5,9,50,37,12}

    {"SOUTHEAST","SOUTHWEST","WEST","NORTH","EAST","NORTHWEST","SOUTHEAST","SOUTHWEST","NORTH","WEST","NORTH","SOUTHEAST","SOUTHWEST","NORTHWEST","NORTHEAST","SOUTH","SOUTHWEST","SOUTHWEST","NORTHEAST","WEST","EAST","NORTHEAST","EAST","EAST","SOUTHWEST","SOUTHEAST","NORTHWEST","WEST","NORTHEAST","NORTHWEST","SOUTHWEST","NORTH","EAST","SOUTH","NORTH","SOUTHWEST","SOUTHEAST","SOUTHEAST","NORTH","SOUTHEAST","SOUTHWEST","NORTHWEST","NORTHEAST","NORTHWEST","NORTHEAST","SOUTHWEST","SOUTHWEST","EAST","NORTH","EAST"}

    Returns: 82.3689193923634

  29. {13,28,21,35,36,16,1,3,19,17,5,33,17,37,19,17,45,4,8,29,39,21,34,45,6,31,38,8,15,32,36,29,11,9,16,49,24,16,1,44,34,5,26,1,43,44,17,39,49,27}

    {"SOUTH","EAST","EAST","EAST","WEST","SOUTHEAST","SOUTHWEST","SOUTHWEST","NORTH","NORTHWEST","NORTHWEST","NORTHWEST","SOUTH","EAST","SOUTH","NORTHEAST","NORTH","NORTHEAST","SOUTH","NORTH","SOUTHEAST","NORTHWEST","NORTHWEST","NORTHWEST","SOUTH","WEST","NORTH","NORTHWEST","NORTH","NORTHWEST","NORTHWEST","SOUTH","WEST","WEST","NORTHWEST","EAST","SOUTHWEST","EAST","NORTHEAST","SOUTHWEST","WEST","SOUTHWEST","EAST","NORTHEAST","NORTHEAST","NORTHWEST","SOUTHEAST","NORTHEAST","SOUTHWEST","NORTH"}

    Returns: 234.60335230152046

  30. {37,12,42,8,11,39,22,8,5,26,3,48,1,36,40,26,3,32,38,39,39,49,31,39,42,39,46,27,11,34,23,50,46,15,7,8,5,30,17,11,7,19,9,7,7,50,35,9,31,24}

    {"NORTH","NORTHEAST","NORTH","NORTHWEST","NORTH","WEST","SOUTH","NORTH","SOUTH","NORTH","SOUTH","WEST","WEST","NORTH","SOUTHEAST","NORTHWEST","NORTH","NORTH","WEST","NORTHEAST","NORTH","WEST","NORTHWEST","NORTH","EAST","SOUTH","WEST","SOUTHWEST","WEST","NORTHEAST","WEST","WEST","SOUTHWEST","WEST","NORTH","SOUTHEAST","EAST","SOUTHWEST","SOUTHEAST","NORTHWEST","SOUTHWEST","NORTH","NORTHWEST","SOUTH","NORTHWEST","EAST","SOUTHWEST","NORTHWEST","EAST","SOUTH"}

    Returns: 317.29087665384736

  31. {18,44,14,3,48,50,46,2,20,49,38,15,49,44,33,33,9,17,37,34,41,27,49,30,50,4,46,15,7,47,50,24,42,15,29,39,14,26,42,35,25,29,50,25,25,32,7,35,48,46}

    {"NORTH","NORTHWEST","SOUTHEAST","NORTH","EAST","WEST","NORTHWEST","NORTHEAST","SOUTHEAST","SOUTH","SOUTHWEST","EAST","NORTH","SOUTHEAST","SOUTH","NORTHEAST","SOUTHEAST","NORTH","SOUTHWEST","SOUTHEAST","SOUTH","SOUTHWEST","SOUTHEAST","NORTHEAST","NORTHEAST","SOUTH","SOUTHEAST","EAST","SOUTHWEST","NORTHEAST","SOUTHEAST","SOUTHWEST","SOUTHWEST","SOUTH","SOUTHWEST","NORTHEAST","NORTHEAST","SOUTHEAST","SOUTHWEST","WEST","NORTH","NORTH","SOUTHEAST","NORTH","SOUTHEAST","NORTH","SOUTH","SOUTH","NORTHWEST","WEST"}

    Returns: 190.83633173329102

  32. {5,17,48,22,21,8,12,8,24,38,42,34,32,18,19,44,13,27,29,23,24,43,46,9,13,21,2,16,40,15,29,46,31,28,18,1,35,31,8,9,20,1,44,1,19,14,46,33,40,24}

    {"SOUTHWEST","NORTH","WEST","SOUTHEAST","NORTHEAST","NORTHWEST","SOUTHWEST","SOUTHEAST","WEST","SOUTHEAST","NORTHWEST","SOUTH","WEST","NORTHWEST","SOUTH","EAST","WEST","WEST","EAST","NORTH","WEST","SOUTH","WEST","NORTH","NORTHWEST","WEST","SOUTHEAST","SOUTHWEST","SOUTH","NORTH","NORTHWEST","WEST","NORTH","NORTH","SOUTHEAST","SOUTH","NORTHWEST","NORTHWEST","NORTH","NORTH","EAST","NORTHEAST","SOUTHWEST","SOUTHEAST","SOUTH","WEST","SOUTH","SOUTH","EAST","NORTHWEST"}

    Returns: 284.8199693973589

  33. {32,33,23,15,29,6,18,41,36,5,43,41,49,6,13,46,45,17,17,7,19,3,11,49,3,37,36,32,36,15,24,17,49,48,34,29,6,1,19,41,8,12,34,6,19,46,3,13,14,19}

    {"NORTH","SOUTHWEST","SOUTHWEST","SOUTH","SOUTHWEST","NORTHEAST","NORTHWEST","SOUTHWEST","SOUTHWEST","NORTHEAST","NORTHEAST","WEST","EAST","EAST","EAST","SOUTHEAST","NORTH","SOUTH","EAST","WEST","NORTHEAST","SOUTH","NORTHEAST","SOUTH","SOUTHWEST","NORTHEAST","EAST","EAST","NORTHEAST","EAST","NORTHEAST","NORTHEAST","NORTHEAST","EAST","SOUTHEAST","EAST","NORTHWEST","EAST","NORTHEAST","SOUTHEAST","NORTH","SOUTHWEST","SOUTHWEST","WEST","NORTHEAST","NORTHEAST","SOUTHWEST","SOUTH","EAST","NORTHEAST"}

    Returns: 371.08296999403404

  34. {35,41,30,31,4,8,47,14,36,27,38,36,27,48,11,11,43,12,15,7,21,28,10,15,17,46,41,15,47,3,26,31,45,7,13,50,15,9,14,2,35,1,40,14,1,50,24,43,11,40}

    {"NORTHEAST","SOUTHWEST","NORTH","NORTHWEST","EAST","EAST","SOUTH","NORTHEAST","NORTHWEST","WEST","SOUTHEAST","EAST","EAST","WEST","NORTH","NORTH","SOUTHEAST","SOUTHWEST","NORTHWEST","SOUTHWEST","NORTH","NORTHWEST","NORTHEAST","SOUTHEAST","SOUTHWEST","NORTHEAST","NORTHEAST","WEST","NORTHEAST","NORTH","NORTHWEST","SOUTHEAST","SOUTHWEST","NORTHWEST","EAST","NORTHEAST","NORTH","NORTHWEST","SOUTHWEST","NORTHWEST","NORTHWEST","NORTHWEST","WEST","WEST","NORTHWEST","WEST","WEST","EAST","SOUTHWEST","NORTH"}

    Returns: 207.380953128892

  35. {11,45,41,17,38,45,24,30,25,24,34,44,23,20,33,32,6,7,45,32,36,10,6,41,9,19,35,3,23,27,3,33,23,45,1,12,40,26,41,14,50,24,9,24,45,41,7,50,50,2}

    {"SOUTHWEST","EAST","EAST","SOUTH","WEST","SOUTHEAST","SOUTH","WEST","SOUTH","NORTHWEST","SOUTH","NORTHWEST","NORTHWEST","SOUTH","NORTHEAST","EAST","SOUTHWEST","NORTHWEST","NORTHWEST","NORTH","EAST","EAST","WEST","NORTHEAST","NORTHEAST","SOUTHEAST","EAST","NORTHEAST","SOUTHWEST","SOUTH","NORTHWEST","NORTH","NORTHEAST","NORTH","SOUTHWEST","NORTHWEST","SOUTHEAST","WEST","NORTH","NORTH","NORTHWEST","SOUTH","NORTHWEST","NORTHEAST","EAST","SOUTH","NORTH","NORTHEAST","SOUTHWEST","NORTHEAST"}

    Returns: 168.41028293099555

  36. {43,41,13,32,31,31,15,12,4,49,41,29,17,7,19,25,48,32,41,4,22,38,47,42,48,3,37,27,31,50,49,23,42,11,6,23,44,20,34,47,20,26,27,37,33,48,13,32,29,3}

    {"NORTHWEST","NORTH","SOUTHEAST","SOUTHEAST","SOUTHEAST","WEST","NORTH","SOUTHEAST","NORTHWEST","SOUTHWEST","NORTHEAST","SOUTHEAST","SOUTH","NORTHEAST","NORTHWEST","NORTHEAST","EAST","NORTH","NORTH","SOUTHEAST","SOUTHWEST","WEST","NORTHEAST","WEST","NORTHWEST","NORTH","NORTH","NORTHEAST","NORTH","SOUTHWEST","NORTH","NORTHWEST","SOUTHWEST","EAST","EAST","NORTHWEST","SOUTHEAST","EAST","WEST","EAST","SOUTH","NORTHWEST","SOUTH","EAST","SOUTH","SOUTHWEST","NORTH","NORTHWEST","SOUTHEAST","NORTH"}

    Returns: 144.85049470789124

  37. {29,16,39,34,11,14,22,5,4,42,28,47,49,50,29,38,20,48,12,19,36,5,48,39,39,2,17,20,1,16,20,30,32,10,15,44,26,38,49,29,32,26,27,30,27,5,19,46,4,31}

    {"WEST","NORTH","NORTH","SOUTH","NORTH","NORTHWEST","NORTHEAST","SOUTHEAST","NORTHEAST","NORTHEAST","EAST","SOUTH","NORTHWEST","NORTHWEST","SOUTHEAST","NORTHWEST","SOUTHEAST","NORTH","SOUTH","NORTHWEST","EAST","EAST","NORTHEAST","NORTHWEST","SOUTH","SOUTHWEST","SOUTHEAST","NORTHEAST","NORTHEAST","NORTHWEST","NORTH","NORTHWEST","NORTHWEST","NORTH","SOUTHWEST","NORTHEAST","NORTHWEST","EAST","WEST","SOUTH","NORTHWEST","SOUTHEAST","WEST","NORTHEAST","WEST","SOUTHWEST","SOUTHWEST","SOUTHWEST","SOUTHWEST","WEST"}

    Returns: 283.9344339260109

  38. {18,13,8,32,26,21,26,42,5,14,13,21,20,22,24,40,10,1,27,45,29,34,39,24,38,30,46,10,8,26,35,27,38,42,10,14,15,35,7,21,1,19,42,20,42,15,9,2,17,35}

    {"SOUTHEAST","NORTHEAST","NORTHWEST","WEST","NORTHWEST","WEST","NORTH","SOUTHWEST","NORTH","SOUTHEAST","SOUTH","NORTHWEST","WEST","SOUTHEAST","EAST","NORTH","NORTHEAST","SOUTHWEST","SOUTHEAST","NORTH","SOUTHEAST","WEST","NORTH","NORTH","NORTH","SOUTH","EAST","SOUTHWEST","SOUTHWEST","NORTH","SOUTH","NORTHEAST","SOUTH","SOUTHWEST","NORTHWEST","SOUTHWEST","SOUTH","NORTHEAST","NORTHWEST","SOUTHWEST","WEST","SOUTHWEST","SOUTHEAST","WEST","NORTHWEST","SOUTH","WEST","SOUTH","NORTH","SOUTHWEST"}

    Returns: 116.17693852874483

  39. {6,8,4,28,32,22,42,22,1,6,30,14,20,33,46,22,4,38,40,41,50,33,21,13,30,29,26,40,34,50,48,42,7,4,19,40,25,10,11,27,18,41,40,37,25,38,10,28,25,49}

    {"SOUTHEAST","WEST","SOUTHEAST","EAST","SOUTH","SOUTHWEST","NORTH","NORTHEAST","SOUTH","SOUTHEAST","NORTHEAST","WEST","EAST","EAST","EAST","SOUTH","NORTH","NORTH","EAST","SOUTHWEST","SOUTH","SOUTHEAST","SOUTHWEST","NORTH","NORTHEAST","SOUTH","SOUTHEAST","SOUTHEAST","SOUTHWEST","SOUTHEAST","NORTHEAST","NORTHEAST","SOUTHWEST","WEST","NORTH","WEST","SOUTH","NORTH","NORTHEAST","WEST","SOUTHEAST","SOUTHWEST","EAST","SOUTHWEST","NORTHEAST","SOUTHWEST","WEST","NORTHEAST","SOUTHWEST","SOUTHEAST"}

    Returns: 329.4936857947535

  40. {10,50,42,24,1,22,15,38,13,34,2,3,24,38,28,6,14,18,8,4,13,17,6,13,23,32,19,46,19,9,44,28,9,35,3,11,8,18,48,20,3,49,25,26,37,2,33,2,21,40}

    {"SOUTHWEST","NORTHEAST","WEST","NORTHWEST","EAST","EAST","NORTH","EAST","SOUTH","NORTHEAST","SOUTH","EAST","SOUTH","WEST","SOUTHWEST","NORTH","SOUTH","WEST","SOUTH","SOUTHWEST","SOUTHEAST","NORTHWEST","NORTHWEST","WEST","SOUTHWEST","SOUTHEAST","SOUTHWEST","SOUTHWEST","NORTH","NORTHWEST","NORTHWEST","SOUTHWEST","SOUTH","NORTH","SOUTHEAST","NORTHEAST","EAST","SOUTHEAST","NORTH","NORTHEAST","NORTH","SOUTH","NORTH","SOUTH","NORTHEAST","SOUTHEAST","SOUTH","SOUTHEAST","SOUTHWEST","EAST"}

    Returns: 46.517077814416865

  41. {31,20,18,24,31,12,5,46,36,37,31,3,25,50,28,24,16,36,15,49,22,21,6,33,17,49,50,6,36,34,9,16,4,28,39,36,40,45,33,27,33,15,30,7,17,9,32,34,44,49}

    {"NORTHWEST","NORTHWEST","EAST","NORTHWEST","SOUTH","NORTH","SOUTH","NORTHEAST","EAST","NORTHEAST","SOUTHEAST","NORTHEAST","SOUTHWEST","NORTHEAST","SOUTHEAST","NORTH","NORTH","SOUTHWEST","SOUTHEAST","NORTHEAST","SOUTH","NORTHWEST","SOUTH","NORTHEAST","NORTHEAST","SOUTHEAST","NORTHEAST","SOUTH","NORTHEAST","NORTHWEST","SOUTH","SOUTHWEST","NORTHEAST","NORTHEAST","SOUTHEAST","SOUTHEAST","NORTHEAST","NORTH","WEST","NORTH","NORTHEAST","SOUTHEAST","NORTHEAST","EAST","WEST","NORTH","WEST","WEST","SOUTHWEST","SOUTHWEST"}

    Returns: 285.3544196650402

  42. {1,46,20,26,24,38,19,10,38,45,40,37,3,38,7,4,34,12,42,29,10,5,8,11,7,26,41,40,17,41,50,19,39,20,46,12,7,14,24,46,9,15,33,13,2,41,17,35,2,10}

    {"SOUTHEAST","WEST","NORTHWEST","EAST","SOUTHEAST","NORTH","WEST","SOUTH","SOUTHEAST","NORTH","SOUTHEAST","WEST","NORTHEAST","WEST","EAST","NORTHEAST","SOUTH","SOUTHWEST","SOUTH","NORTHEAST","EAST","NORTHWEST","EAST","EAST","NORTH","NORTHWEST","EAST","SOUTHWEST","NORTHEAST","NORTHEAST","SOUTHEAST","WEST","NORTHWEST","WEST","SOUTHEAST","EAST","WEST","SOUTHEAST","NORTHWEST","SOUTHWEST","SOUTHEAST","EAST","SOUTH","WEST","EAST","NORTHWEST","NORTHWEST","NORTHWEST","EAST","SOUTHEAST"}

    Returns: 70.46951179990177

  43. {50,35,21,44,7,45,41,21,37,25,39,39,24,18,6,48,20,45,19,37,47,10,8,15,37,20,16,1,41,10,14,40,46,34,35,4,31,25,25,19,50,13,9,25,33,14,22,2,10,40}

    {"EAST","NORTH","NORTH","WEST","EAST","SOUTH","EAST","SOUTHEAST","WEST","EAST","SOUTH","NORTH","NORTHWEST","SOUTHWEST","WEST","SOUTHEAST","NORTH","SOUTHEAST","SOUTH","SOUTHWEST","EAST","EAST","NORTHEAST","EAST","SOUTHEAST","SOUTHWEST","EAST","SOUTHWEST","NORTH","SOUTH","NORTHEAST","EAST","SOUTH","NORTHEAST","SOUTHEAST","NORTHWEST","SOUTHEAST","SOUTH","WEST","SOUTHWEST","NORTHWEST","NORTHEAST","SOUTHWEST","NORTHEAST","EAST","SOUTHWEST","WEST","EAST","NORTHWEST","NORTHEAST"}

    Returns: 276.4576615434116

  44. {1 }

    {"NORTH" }

    Returns: 1.0

  45. {2 }

    {"NORTH" }

    Returns: 2.0

  46. {34, 48, 34 }

    {"NORTH", "SOUTHWEST", "EAST" }

    Returns: 0.08326112068522587

  47. {2, 2, 2, 1 }

    {"NORTH", "NORTH", "NORTH", "NORTHWEST" }

    Returns: 6.744277676240694

  48. {3, 1, 7 }

    {"EAST", "WEST", "EAST" }

    Returns: 9.0

  49. {1 }

    {"EAST" }

    Returns: 1.0

  50. {2, 2 }

    {"NORTHEAST", "EAST" }

    Returns: 3.695518130045147

  51. {1, 1, 1, 1, 1 }

    {"NORTHEAST", "NORTHEAST", "NORTHEAST", "EAST", "NORTHEAST" }

    Returns: 4.759921664218056

  52. {30 }

    {"SOUTHEAST" }

    Returns: 30.000000000000004

  53. {1 }

    {"SOUTHWEST" }

    Returns: 1.0

  54. {1, 2 }

    {"NORTHEAST", "EAST" }

    Returns: 2.7979326519318133

  55. {2, 2, 2, 1 }

    {"NORTH", "NORTHEAST", "NORTH", "WEST" }

    Returns: 5.430035117219646

  56. {30, 10, 7 }

    {"NORTHEAST", "NORTHEAST", "EAST" }

    Returns: 45.22145284557393

  57. {3, 10, 7, 45 }

    {"EAST", "WEST", "EAST", "SOUTH" }

    Returns: 45.0

  58. {5, 5 }

    {"NORTHEAST", "NORTHWEST" }

    Returns: 7.0710678118654755

  59. {50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }

    {"NORTHWEST", "NORTHWEST", "NORTHWEST", "NORTHWEST", "NORTHWEST", "NORTHWEST", "NORTHWEST", "NORTHWEST", "NORTHWEST", "NORTHWEST" }

    Returns: 500.00000000000006

  60. {2, 5, 7, 3 }

    {"NORTHEAST", "NORTHWEST", "SOUTH", "EAST" }

    Returns: 2.230608298729404

  61. {1, 1 }

    {"NORTH", "SOUTH" }

    Returns: 0.0

  62. {10, 10 }

    {"NORTHEAST", "NORTHEAST" }

    Returns: 20.0

  63. {12, 23, 23 }

    {"NORTHEAST", "NORTHEAST", "NORTHEAST" }

    Returns: 58.00000000000001


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: