Statistics

Problem Statement for "SpiralNumbers"

Problem Statement

Consider all positive integers written in the following manner (you can imagine an infinite spiral).
                 21  22  23  24  25  26
                 20   7   8   9  10 ...
                 19   6   1   2  11 ...
                 18   5   4   3  12 ...
                 17  16  15  14  13 ...
     
You task is to determine the position (row,column) of a given number N, assuming that the center (number 1) has position (0,0). Rows are numbered from top to bottom, columns are numbered from left to right (for example, number 3 is at (1,1)). Your method should return a string containing the position of N in form (R,C) where R is the row and C is the column. R and C must not contain any leading zeroes.

Definition

Class:
SpiralNumbers
Method:
getPosition
Parameters:
int
Returns:
String
Method signature:
String getPosition(int N)
(be sure your method is public)

Constraints

  • N will be between 1 and 2,147,483,647, inclusive.

Examples

  1. 2

    Returns: "(0,1)"

  2. 3

    Returns: "(1,1)"

  3. 7

    Returns: "(-1,-1)"

  4. 17

    Returns: "(2,-2)"

  5. 24

    Returns: "(-2,1)"

  6. 830

    Returns: "(-14,3)"

  7. 765409

    Returns: "(-437,221)"

  8. 3577

    Returns: "(30,-6)"

  9. 1241

    Returns: "(-2,18)"

  10. 5393

    Returns: "(27,37)"

  11. 9575

    Returns: "(49,-19)"

  12. 6319

    Returns: "(38,40)"

  13. 8738

    Returns: "(42,47)"

  14. 9724

    Returns: "(-49,-28)"

  15. 7803

    Returns: "(-14,-44)"

  16. 1354389

    Returns: "(582,-74)"

  17. 1197879

    Returns: "(-495,-547)"

  18. 1051382

    Returns: "(244,513)"

  19. 1694284

    Returns: "(651,270)"

  20. 1765429

    Returns: "(-664,-148)"

  21. 1746739269

    Returns: "(20065,-20897)"

  22. 1581653398

    Returns: "(19388,-19885)"

  23. 1504049281

    Returns: "(13635,-19391)"

  24. 1335708714

    Returns: "(7231,18274)"

  25. 1988569709

    Returns: "(11763,22297)"

  26. 1089242603

    Returns: "(16502,4912)"

  27. 1643347426

    Returns: "(2288,-20269)"

  28. 1981814007

    Returns: "(22259,16059)"

  29. 1880603329

    Returns: "(21683,-15055)"

  30. 1882376233

    Returns: "(-9543,-21693)"

  31. 2147483638

    Returns: "(-23170,18527)"

  32. 2147483639

    Returns: "(-23170,18528)"

  33. 2147483640

    Returns: "(-23170,18529)"

  34. 2147483641

    Returns: "(-23170,18530)"

  35. 2147483642

    Returns: "(-23170,18531)"

  36. 2147483643

    Returns: "(-23170,18532)"

  37. 2147483644

    Returns: "(-23170,18533)"

  38. 2147483645

    Returns: "(-23170,18534)"

  39. 2147483646

    Returns: "(-23170,18535)"

  40. 2147483647

    Returns: "(-23170,18536)"

  41. 1156340025

    Returns: "(-17002,17002)"

  42. 1247573041

    Returns: "(-17660,17660)"

  43. 647549809

    Returns: "(-12723,12723)"

  44. 667033929

    Returns: "(-12913,12913)"

  45. 968018769

    Returns: "(-15556,15556)"

  46. 3886

    Returns: "(-10,-31)"

  47. 5630

    Returns: "(-33,38)"

  48. 7221

    Returns: "(-42,38)"

  49. 15489

    Returns: "(-50,-62)"

  50. 9983

    Returns: "(50,-32)"

  51. 14712

    Returns: "(10,61)"

  52. 18894

    Returns: "(56,69)"

  53. 11455

    Returns: "(-48,54)"

  54. 18431

    Returns: "(68,-2)"

  55. 18830

    Returns: "(-8,69)"

  56. 3421

    Returns: "(-27,-29)"

  57. 12534

    Returns: "(56,-45)"

  58. 19978

    Returns: "(26,71)"

  59. 1406

    Returns: "(18,19)"

  60. 12831

    Returns: "(5,57)"

  61. 1403228077

    Returns: "(18730,4794)"

  62. 1176144492

    Returns: "(-17147,14614)"

  63. 742077057

    Returns: "(-8645,13621)"

  64. 1487275698

    Returns: "(-2810,19283)"

  65. 1982325633

    Returns: "(5842,22262)"

  66. 1091291954

    Returns: "(-16517,-2754)"

  67. 822976965

    Returns: "(14344,10036)"

  68. 2000000001

    Returns: "(9799,22361)"

  69. 1595633577

    Returns: "(10579,19973)"

  70. 1924141339

    Returns: "(-18819,21933)"

  71. 1723303803

    Returns: "(-20756,-4610)"

  72. 1935569301

    Returns: "(-12722,21998)"

  73. 1752361901

    Returns: "(-2351,20931)"

  74. 1817007465

    Returns: "(-10275,-21313)"

  75. 1927261228

    Returns: "(-21950,-14623)"

  76. 2000000001

    Returns: "(9799,22361)"

  77. 1713054241

    Returns: "(-15775,20695)"

  78. 1424967331

    Returns: "(-18874,-796)"

  79. 1137762248

    Returns: "(-16865,-1248)"

  80. 937619661

    Returns: "(-15310,-10670)"

  81. 1

    Returns: "(0,0)"

  82. 3157729

    Returns: "(-888,888)"

  83. 2147483646

    Returns: "(-23170,18535)"

  84. 999999

    Returns: "(500,-498)"

  85. 2147483647

    Returns: "(-23170,18536)"

  86. 1

    Returns: "(0,0)"

  87. 2147483000

    Returns: "(-23170,17889)"

  88. 2000000000

    Returns: "(9798,22361)"

  89. 3158128

    Returns: "(-490,889)"

  90. 2

    Returns: "(0,1)"

  91. 765409

    Returns: "(-437,221)"

  92. 1000000000

    Returns: "(-15811,1682)"

  93. 10000000

    Returns: "(-174,-1581)"

  94. 2100000000

    Returns: "(22913,-636)"

  95. 9

    Returns: "(-1,1)"

  96. 2147483631

    Returns: "(-23170,18520)"

  97. 2147483640

    Returns: "(-23170,18529)"


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: