Statistics

Problem Statement for "TheCardLineDivTwo"

Problem Statement

John and Brus are training for a card game tournament. During his off-time, Brus likes to occupy himself with the following game. The game is played with a subset of a standard deck of 52 distinct cards. Each card can be represented by a two-character string, where the first character is the rank ('2'-'9', 'T', 'J', 'Q', 'K', or 'A') and the second character is the suit ('S' for Spades, 'C' for Clubs, 'D' for Diamonds or 'H' for Hearts). All Spades and Clubs are black, and all Diamonds and Hearts are red. For example, the Jack of Spades is black and is represented as "JS", and the Nine of Hearts is red and is represented as "9H".

You are given a String[] cards containing the subset of the deck that Brus is playing with. Each element of cards represents a single card. He wants to place all of these cards in a line such that every pair of neighboring cards has the same rank or the same color (or both). Return the number of different ways he can do this modulo 1234567891.

Definition

Class:
TheCardLineDivTwo
Method:
count
Parameters:
String[]
Returns:
int
Method signature:
int count(String[] cards)
(be sure your method is public)

Constraints

  • cards will contain between 1 and 16 elements, inclusive.
  • Each element of cards will contain exactly two characters, where the first character is '2'-'9', 'T', 'J', 'Q', 'K' or 'A', and the second character is 'S', 'C', 'D' or 'H'.
  • All elements of cards will be distinct.

Examples

  1. {"KH", "QD", "KC"}

    Returns: 2

    There are two possible placements - KC-KH-QD and QD-KH-KC.

  2. {"JS", "JC", "JD", "JH"}

    Returns: 24

    All 24 permutations are valid.

  3. {"2S", "3C", "4C", "5S", "6C", "7S", "8S", "9H"}

    Returns: 0

    There is nothing we can do with the Nine of Hearts.

  4. {"KD", "KC", "AD", "7C", "AH", "9C", "4H", "4S", "AS"}

    Returns: 2416

  5. {"8S"}

    Returns: 1

  6. {"2S", "TS", "QS", "TD", "7S"}

    Returns: 12

  7. {"2D", "4S", "2S", "2H", "TC"}

    Returns: 8

  8. {"7S", "9S", "JS", "JD", "TS", "2H", "6D", "2D"}

    Returns: 72

  9. {"KS", "TS", "QC"}

    Returns: 6

  10. {"6S", "5D", "5H", "7S", "TD", "KC", "3C", "3S", "8D", "5S"}

    Returns: 2880

  11. {"3S", "KC", "AS", "7C", "TC", "9C", "4H", "4S", "2S"}

    Returns: 10080

  12. {"KH", "JS", "KS", "2S", "3S", "TS", "2D", "8S", "2H", "4S", "TC"}

    Returns: 89280

  13. {"6C", "9S", "QD"}

    Returns: 0

  14. {"QD", "3S", "9S", "4C", "6H", "5S", "5C", "KD", "AD", "6S", "7S", "JS", "9D", "9C", "2H", "8S"}

    Returns: 319334400

  15. {"5S", "7S", "3H", "TS", "2C", "2S", "6H", "KS", "AS", "4D", "8S"}

    Returns: 0

  16. {"9H", "QS", "JH", "2S", "2D", "8H", "QH", "TS", "KS"}

    Returns: 744

  17. {"AS", "8S", "3S", "5H", "2S", "9S", "QS", "4S", "QH", "8C", "TS", "8H", "9H", "2D", "6S", "8D"}

    Returns: 191757869

  18. {"4S", "AD", "JS", "7S", "6S"}

    Returns: 0

  19. {"TD", "AS", "8C", "2H", "9S", "QD", "6D", "AC", "QC", "4S", "QS", "2S", "3S", "2C", "JH", "6C"}

    Returns: 296946989

  20. {"2S", "TC", "8D", "9D", "8S", "AH", "3S", "6S", "TS"}

    Returns: 480

  21. {"TS", "9D", "AD", "2S", "6D", "2H", "KH", "JS", "TH", "8D", "7S", "JD", "6S", "7C", "2D", "5S"}

    Returns: 508654080

  22. {"5S", "AS", "9S", "4D", "3H", "2S", "2D", "3D", "2H", "7C", "JD", "9C", "5D", "TS", "8S", "6C"}

    Returns: 210470400

  23. {"TS", "6S", "AD", "KD", "4D", "9C", "TC", "3H", "2H", "9D", "5C", "5S", "4C", "2D", "7S", "8S"}

    Returns: 133056000

  24. {"7S", "QC", "KD", "JH", "6S", "8S", "4D", "4S", "TD", "KH", "5S", "3S", "3C", "TS", "QH", "8C"}

    Returns: 354170880

  25. {"JD", "6D", "JS", "QH", "QS", "KS", "TC", "3S", "9S", "3H", "4S", "7D", "JH", "7S", "AS", "2C"}

    Returns: 785998080

  26. {"TS", "5S", "TC", "7C", "6S", "2C", "9S", "JS", "QS", "KC", "7S", "2S", "8S", "AS", "AC", "4S"}

    Returns: 567839223

  27. {"KC", "3S", "KS", "9S", "9C", "5C", "6S", "2S", "7C", "2C", "AS", "JS", "6C", "5S", "8S", "7S"}

    Returns: 567839223

  28. {"QS", "9S", "AS", "6S", "8S", "4C", "KS", "3S", "2S", "TS"}

    Returns: 3628800

  29. {"5S", "AS", "6S", "8S", "QS", "KS", "7S", "JS", "9S", "2S", "4S", "AC"}

    Returns: 479001600

  30. {"JC", "5S", "8S", "AC", "QS", "JS", "4S", "9S", "6S", "AS", "KS", "8C", "2S", "QC", "9C"}

    Returns: 266971431

  31. {"9D", "8D", "QD", "7H", "9H", "4H", "3D", "TD", "KD", "JD", "AH", "4D", "7D", "5D", "KH", "6D"}

    Returns: 567839223

  32. {"7D", "8D", "JD", "3D", "TD", "KH", "4D", "AD", "7H", "6H", "2H", "KD", "9D", "3H", "6D", "5H"}

    Returns: 567839223

  33. {"9D", "5D", "TD", "AD", "7D", "AH", "8D", "3D", "6D", "7H", "QD", "3H", "2D", "KD"}

    Returns: 758538830

  34. {"9C", "8C", "QC", "7D", "9D", "4D", "3C", "TC", "KC", "JC", "AD", "4C", "7C", "5C", "KD", "6C"}

    Returns: 1178634240

  35. {"4C", "TC", "6D", "2D", "TD", "8C", "6C", "7D", "9C", "5C", "5D", "2C", "3D", "3C", "KC", "JC"}

    Returns: 846115200

  36. {"3D", "JC", "9D", "8C", "QC", "TD", "2C", "QD", "3C", "4D", "KC", "9C", "KD", "7C", "JD", "TC"}

    Returns: 791510400

  37. {"6C", "7C", "2C", "3C", "4C", "KD", "JC", "AD", "9C", "8C", "AC", "4D", "QC", "KC", "2D", "5C"}

    Returns: 1066766938

  38. {"QD", "QH", "9H", "JD", "9S", "9D", "QS", "TH", "9C", "JS", "JC", "TS"}

    Returns: 1298336

  39. {"JD", "TD", "9H", "9D", "9S", "QC", "9C", "JS", "TH", "JC"}

    Returns: 17056

  40. {"JD", "QS", "TS", "QD", "JH", "9S", "9D"}

    Returns: 68

  41. {"9C", "QS", "9S", "JH", "JS", "9D", "TS", "QD", "TH", "JD", "QC", "TD", "9H", "TC", "QH"}

    Returns: 938204160

  42. {"9H", "QS", "9S", "TS", "9C"}

    Returns: 36

  43. {"4D", "4S", "5H", "5S", "3H", "2D", "3D", "6C", "5C", "6S", "5D", "4H", "6D", "4C", "6H", "3S"}

    Returns: 270010849

  44. {"4D", "5S", "6D", "9S", "8C", "9C", "TS", "9D", "6S", "6H", "8S", "7C", "TD", "4S", "4H", "5D"}

    Returns: 102691373

  45. {"7H", "8D", "8S", "TS", "9H", "4S", "4D", "4C", "6C", "4H", "9C", "7D", "5D", "9S", "TD", "6S"}

    Returns: 1055794176

  46. {"QH", "JS", "9D", "AD", "QC", "6C", "KS", "KC", "9S", "9C", "8S", "AS", "8H", "9H", "QS", "7S"}

    Returns: 531831687

  47. {"TD", "QS", "6H", "7H", "KD", "9H", "TS", "QH", "9D", "8D", "6D", "AS", "8S", "9S", "TC", "JS"}

    Returns: 695197440

  48. {"2S", "2C", "3S", "3C", "4S", "4C", "5S", "5C", "6S", "6C", "7S", "7C", "8S", "8C", "9S", "9C"}

    Returns: 567839223

  49. {"KD", "KC", "AD", "7C", "AH", "9C", "4H", "4S", "AS" }

    Returns: 2416

  50. {"JD", "QD", "KD", "AD", "JS", "QS", "KS", "AS", "JH", "QH", "KH", "AH", "JC", "QC", "KC", "AC" }

    Returns: 759168059

  51. {"2H", "3H", "4H", "5H", "6H", "7H", "9H", "8H", "TH", "JH", "AH", "KH", "QH" }

    Returns: 54181345

  52. {"2H", "3H", "4H", "5H", "6H", "7H", "8H", "9H", "TH", "JH", "QH", "KH", "AH", "2D", "3D", "4D" }

    Returns: 567839223

  53. {"AS", "2S", "3S", "4S", "5S", "6S", "7S", "8S", "9S", "KS", "AC", "AD", "AH", "3D", "3H" }

    Returns: 536739840

  54. {"AD", "AH", "AC", "AS", "2D", "2H", "2C", "2S", "3H", "3S", "3D", "3C", "4H", "4D", "4S", "4C" }

    Returns: 759168059

  55. {"2D", "3D", "4D", "5D", "6D", "7D", "8D", "9D", "8H", "9H", "2H", "3H", "4H", "5H", "6H" }

    Returns: 266971431

  56. {"AH", "2H", "3H", "4H", "5H", "6H", "7H", "8H", "9H", "TH", "JH", "QH", "KH", "AD", "2D", "3D" }

    Returns: 567839223

  57. {"KD", "KC", "AD", "7C", "AH", "9C", "4H", "4S", "AS", "9H", "9S", "4C", "4D", "9D", "3D" }

    Returns: 392089344

  58. {"AD", "2D", "3D", "4D", "5D", "6D", "7D", "8D", "9D", "TD", "JD", "QD", "KD", "AH", "2H", "3H" }

    Returns: 567839223

  59. {"2S", "2C", "2H", "2D", "3S", "3C", "3H", "3D", "4S", "4C", "4H", "4D", "5S", "5D", "5H", "5C" }

    Returns: 759168059

  60. {"KD", "KC", "AD", "7C", "AH", "9C", "4H", "4S", "AS", "2C", "3C", "4C", "5D", "2D", "5S", "7S" }

    Returns: 334628909

  61. {"2S", "3S", "4S", "5S", "6S", "7S", "8S", "9S", "TS", "JS", "QS", "KS", "AS" }

    Returns: 54181345

  62. {"KD", "KC", "AD", "7C", "AH", "9C", "4H", "4S", "AS", "2S", "9S", "9D", "7H", "KS", "3H" }

    Returns: 180149952

  63. {"2C", "3C", "4C", "5C", "6C", "7C", "8C", "9C", "2S", "3S", "4S", "5S", "6S", "7S", "8S", "9S" }

    Returns: 567839223

  64. {"QS", "8C", "AC", "6C", "AS", "7S", "4H", "AH", "QC", "6D", "KS", "4S", "7D", "6H", "QD", "8D" }

    Returns: 652092461

  65. {"TH", "6C", "QH", "6D", "JH", "7D", "6S", "6H", "KH", "4H", "9H", "4S", "7H", "8H", "7S", "4D" }

    Returns: 345121730

  66. {"KD", "KC", "AD", "7C", "AH", "9C", "4H", "4S", "AS", "8C", "2D", "3C", "5S", "6D", "9S" }

    Returns: 58492800

  67. {"2H", "3H", "4H", "5H", "6H", "7H", "8H", "9H", "2C", "3C", "4C", "5C", "6C", "7C", "8C", "9C" }

    Returns: 131231789

  68. {"2S", "3S", "4S", "6S", "5S", "7S", "8S", "9S", "TS", "JS", "QS", "KS", "AS", "AC", "AD", "AH" }

    Returns: 225355885

  69. {"2S", "3S", "4S", "5S", "6S", "7S", "8S", "9S", "TS", "JS", "QS", "KS", "AS", "2C", "3C", "4C" }

    Returns: 567839223

  70. {"2S", "3S", "4S", "5S", "6S", "7S", "8S", "9S", "2C", "3C", "4C", "5C", "6C", "7C", "8C", "9C" }

    Returns: 567839223

  71. {"2S", "3D", "4H", "5S", "6C", "7D", "8H", "9H", "9S", "3H", "4D", "6D", "6S", "7S", "6H", "5H" }

    Returns: 191757869

  72. {"2H", "3H", "4H", "5H", "6H", "7H", "8H", "9H", "2D", "3D", "4D", "5D", "6D", "7D", "8D", "9D" }

    Returns: 567839223

  73. {"JS", "JC", "JD", "JH", "AH", "KH", "QH", "2H", "3H", "4H", "5H", "6H", "7H", "8H", "9H", "TH" }

    Returns: 225355885

  74. {"2C", "3C", "4C", "5C", "6C", "7C", "8C", "2D", "3D", "4D", "5D", "7D", "8D", "9D", "TD", "JD" }

    Returns: 791510400

  75. {"2D", "3D", "4D", "5D", "6D", "7D", "8D", "9D", "2H", "3H", "4H", "5H", "6H", "7H", "8H" }

    Returns: 266971431

  76. {"2S", "2C", "2D", "2H", "3S", "3C", "3D", "3H", "4S", "4D", "4C", "4H", "5S", "5C", "5D", "7H" }

    Returns: 529518260

  77. {"2S", "2C", "2H", "2D", "3S", "3C", "3H", "3D", "4S", "4C", "4H", "4D", "5S", "5C", "5H", "5D" }

    Returns: 759168059

  78. {"KD", "KC", "AD", "7C", "AH", "9C", "4H", "4S", "AS", "2C", "2D", "3D", "4D", "5D", "7D", "8D" }

    Returns: 334628909

  79. {"2C", "3C", "4C", "5C", "6C", "7C", "8C", "9C", "AC", "KC", "QC", "JC", "QH", "QD", "QS", "KS" }

    Returns: 225355885

  80. {"2D", "3D", "4D", "5D", "6D", "7D", "8D", "9D", "TD", "JD", "QD", "KD", "AD", "2H", "3H", "4H" }

    Returns: 567839223

  81. {"KD", "KC", "7C", "AH", "9C", "4H", "4S", "AS", "4C", "QD", "QC", "QH", "AD", "JH", "JS" }

    Returns: 180149952

  82. {"KD", "QC", "AD", "AH", "4H", "8D", "9C", "3D", "9S", "5S", "8S", "KC", "2S", "4D", "8H", "9H" }

    Returns: 472780800

  83. {"2C", "2S", "2H", "2D", "3C", "3S", "3H", "3D", "4C", "4S", "4H", "4D", "5C", "5S", "5H", "5D" }

    Returns: 759168059

  84. {"7S", "7D", "7C", "9S", "9D", "9H" }

    Returns: 80

  85. {"2S", "2C", "2H", "2D", "AS", "AC", "AH", "AD", "KS", "KC", "KH", "KD", "9S", "9C", "9H", "9D" }

    Returns: 759168059

  86. {"2S", "3C", "4C", "5S", "6C", "7S", "8S", "9H", "TS", "TD", "TC", "TH", "QS", "QH", "QD" }

    Returns: 195390720

  87. {"2D", "3D", "4D", "5D", "6D", "7D", "8D", "9D", "TD", "JD", "QD", "KD", "AD", "2C", "3C", "4C" }

    Returns: 938056763

  88. {"KD", "KC", "AD", "7C", "AH", "9C", "4H", "4S", "AS", "KH", "KS", "2H", "2S", "2D", "2C", "3H" }

    Returns: 1178061101

  89. {"JS", "2S", "3S", "4S", "7S", "8S", "5S", "9S", "TS", "2C", "3C", "4C", "5C", "6C", "7C", "8C" }

    Returns: 567839223

  90. {"2S", "3S", "4S", "5S", "6S", "7S", "8S", "9S", "TS", "JS", "QS", "KS", "AS", "3C", "5C", "4C" }

    Returns: 567839223

  91. {"2S", "3S", "4S", "5S", "6S", "7S", "8S", "9S", "TS", "JS", "KS", "QS", "AS", "2C", "3C", "4C" }

    Returns: 567839223

  92. {"KH", "QD", "KC", "AS", "2S", "3S", "4S", "5S", "6S", "7S", "8S", "9S", "TS", "JS", "QS", "KS" }

    Returns: 670122577

  93. {"KS", "KC", "KD", "KH", "QS", "QD", "QC", "QH", "9S", "9C", "8H", "8S", "8C", "8D", "AS", "AD" }

    Returns: 1143663495


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: