Statistics

Problem Statement for "DevuAndRabbitNumbering"

Problem Statement

Devu loves rabbits a lot. He recently bought some rabbits from his friend Amit. Amit has given each rabbit an integer ID. These are given to you in the int[] rabbitIds.


Now, Devu knows that Amir is careless and sometimes assigns the same ID to multiple rabbits. To eliminate the possible confusion, Devu would like to make sure that no two rabbits have same ID.


Determine whether Devu can change all IDs into mutually distinct integers if he can only increase or decrease the ID of each rabbit by at most one. Return "can" (quotes for clarity) if he can do that, or "cannot" if he cannot make all IDs distinct without changing some of them by more than one.

Definition

Class:
DevuAndRabbitNumbering
Method:
canRenumber
Parameters:
int[]
Returns:
String
Method signature:
String canRenumber(int[] rabbitIds)
(be sure your method is public)

Notes

  • The return value is case-sensitive.

Constraints

  • rabbitIds will contain between 1 and 50 elements, inclusive.
  • Each element of rabbitIds will be between 1 and 1000, inclusive.

Examples

  1. {1, 2, 3}

    Returns: "can"

    All the IDs of rabbits are already distinct.

  2. {1, 2, 2}

    Returns: "can"

    Devu can change the ID of the last rabbit to 3. Then all the rabbits will have distinct IDs.

  3. {2, 4, 2, 2, 1, 2}

    Returns: "cannot"

  4. {1, 2, 4, 2, 6, 6, 7}

    Returns: "can"

  5. {960,578,296,414,352,610,872,556,113,818,194,804,141,859,761,887,3,952,234,667,196,693,783}

    Returns: "can"

  6. {97, 64, 22, 17, 75, 97, 85, 68, 35, 82, 64, 10, 71, 11, 64, 64, 94, 52, 28, 40, 48, 46, 5, 82, 39, 65, 2, 93, 43, 50, 44, 90, 69, 72, 94, 6, 62, 17, 12, 12, 84, 33, 38}

    Returns: "cannot"

  7. {1, 1, 1}

    Returns: "can"

  8. {1, 1, 1, 1}

    Returns: "cannot"

  9. {1, 1, 2, 2, 2}

    Returns: "cannot"

  10. {1, 2, 2, 2, 2, 1}

    Returns: "cannot"

  11. {1, 3, 2, 2, 3, 2, 1}

    Returns: "cannot"

  12. {1, 3, 2, 2, 3, 3, 2, 1}

    Returns: "cannot"

  13. {1, 3, 2, 2, 3, 3, 2, 1, 1}

    Returns: "cannot"

  14. {3,11,2,3}

    Returns: "can"

  15. {24,42,20,44,33,20,16,45,3,35,10,23,10,20,5,11,3,29,34,28,41,43,19,41,47,26,40,45,4,11,30,23,7}

    Returns: "can"

  16. {9,34,19,30,31,29,10,26,4,4,7,37,2,10,13,11,5,29,13,25,9,18,31,34,5,20,28,17,27,2,37,5,6,35,23,15,18,29,18,33,7,6,35,30,19,24,22,21,21,3}

    Returns: "cannot"

  17. {40,44,29,31,44}

    Returns: "can"

  18. {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}

    Returns: "cannot"

  19. {3,1,8,7,3}

    Returns: "can"

  20. {7,7,2,4,5,11,18,12,5,7,9}

    Returns: "can"

  21. {35,29,6,27,27,10,21,19,23,1,24,35,8,11,2,28,8}

    Returns: "can"

  22. {1,8,3,9,8,2,1,9,1,7,8,5,3,1,6,6,1,6,7,7,4,4,6,6,5,3,4,8,2,7,8,3,8,4,4,4,3,7,6,5,6,1,3,4,1,7,1,7,5}

    Returns: "cannot"

  23. {6,11,10,10,10,2,8,7,7}

    Returns: "can"

  24. {1,2,3,7,1,6,6}

    Returns: "can"

  25. {2,1,5,6,6,2,3,6}

    Returns: "can"

  26. {33,33,1,32,25,8,10,23,22,10,2,11,30,2,17,23,21,27,27,35,5,31,12,17,25,26,36}

    Returns: "can"

  27. {7,13,19,29,18,13,19,8,20,7,13,21,29,6,22,17,8,12,12,24,21,17,5,25,16,2,28,17,5,14,23,23,1,5,14,28,12,26,12,17,10,3,6,7,25,25,28,15,24,6}

    Returns: "cannot"

  28. {1}

    Returns: "can"

  29. {1, 1}

    Returns: "can"

  30. {1, 2}

    Returns: "can"

  31. {37,15,24,26,34,20,16,35,21,18,7,3,22,13,40,5,45,47,46,14,32,19,42,33,10,36,23,31,9,38,41,1,8,43,49,17,12,4,29,48,30,44,6,50,27,2,39,25,28,11}

    Returns: "can"

    Array containing all elements from 1 to 50.

  32. {15,3,1,18,2,5,24,20,23,8,19,16,14,7,25,11,21,6,17,12,9,10,4,22,13}

    Returns: "can"

  33. {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}

    Returns: "cannot"

  34. {54,45,58,32,22,97,66,92,107,104,92,61,36,34,15,66,21,9,43,22,90,118,21,69,76,72,22,90,85,107,35,26,60,27,78,56,27,3,70,102,92,17,30,108,54,118,79,39,50,25}

    Returns: "cannot"

  35. {30,35,1,39,2,50,78,34,20,65,12,43,79,25,67,20,76,6,43,67,30,8,11,20,79,39,19,46,60,16,72,81,3,49,16,1,3,55,58,8,21,71,46,45,46,76,53,49,74,25}

    Returns: "can"

  36. {54,45,58,32,22,97,66,92,107,104,92,61,36,34,15,66,21,9,43,22,90,118,21,69,76,72,22,90,85,107,35,26,60,27,78,56,27,3,70,102,92,17,30,108,54,118,79,39,50,25}

    Returns: "cannot"

  37. {21,504,628,440,571,434,420,704,56,911,846,214,199,147,56,79,310,393,583,180,656,816,879,760,294,849,318,348,490,668,615,893,656,43,562,475,501,467,904,109,543,776,864,274,570,709,511,722,669,507}

    Returns: "can"

  38. {999, 999, 1000, 1000}

    Returns: "can"

  39. {999, 999, 1000, 1000, 1000}

    Returns: "cannot"

  40. {999, 999, 999, 1000}

    Returns: "can"

  41. {1, 2, 3 }

    Returns: "can"

  42. {1, 2, 2 }

    Returns: "can"

  43. {1, 2, 3, 4, 3, 4 }

    Returns: "can"

  44. {1, 2, 4, 2, 5, 6, 7, 6 }

    Returns: "can"

  45. {2, 3, 2, 3, 1, 24, 24, 24 }

    Returns: "can"

  46. {64, 65, 65, 66 }

    Returns: "can"

  47. {2, 4, 2, 4, 2 }

    Returns: "can"

  48. {23, 29, 25, 29, 25, 31, 33, 34, 29, 17, 90 }

    Returns: "can"

  49. {1, 1, 1, 1000, 1000, 1000 }

    Returns: "can"

  50. {1, 3, 3, 3 }

    Returns: "can"

  51. {2, 3, 2, 1, 24, 24, 24 }

    Returns: "can"

  52. {1, 100, 99 }

    Returns: "can"

  53. {1, 5, 3, 5, 7, 6, 4 }

    Returns: "can"

  54. {5, 5, 5 }

    Returns: "can"

  55. {97, 64 }

    Returns: "can"

  56. {2, 7, 5, 5, 8, 6 }

    Returns: "can"

  57. {1, 5, 5, 5, 8, 10, 1 }

    Returns: "can"

  58. {100, 100, 100 }

    Returns: "can"

  59. {10, 9, 8, 5, 5, 5, 1, 2, 2 }

    Returns: "can"

  60. {10, 11, 9, 9, 5, 5, 5, 1, 2, 2 }

    Returns: "can"

  61. {1, 2, 4, 2, 6, 6, 7 }

    Returns: "can"

  62. {1, 2, 3, 4, 4, 5, 5 }

    Returns: "can"

  63. {1, 1, 2, 4, 4, 4 }

    Returns: "can"

  64. {1000, 1000, 1000 }

    Returns: "can"

  65. {2, 2 }

    Returns: "can"

  66. {2, 3, 3, 3, 4 }

    Returns: "can"

  67. {2, 2, 2 }

    Returns: "can"

  68. {200, 400, 200, 200, 100, 200 }

    Returns: "cannot"

  69. {2, 2, 2, 3, 3, 3 }

    Returns: "cannot"

  70. {1, 1, 1 }

    Returns: "can"

  71. {1, 1, 1, 2, 1, 3 }

    Returns: "cannot"

  72. {1, 1, 1, 2, 3 }

    Returns: "can"

  73. {1, 1, 2, 3 }

    Returns: "can"

  74. {2, 4, 2, 2, 1, 2 }

    Returns: "cannot"

  75. {1, 1, 2, 2, 3, 3 }

    Returns: "cannot"

  76. {4, 4, 4 }

    Returns: "can"

  77. {10, 11, 12, 13, 9, 11 }

    Returns: "can"

  78. {1, 1, 2, 2, 3 }

    Returns: "can"

  79. {8, 8, 8 }

    Returns: "can"

  80. {999, 1000, 1000, 1000 }

    Returns: "can"

  81. {10, 11, 12, 13, 14, 15, 11 }

    Returns: "can"

  82. {2, 3, 3, 3 }

    Returns: "can"


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: