Statistics

Problem Statement for "TheCardLineDivOne"

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:
TheCardLineDivOne
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 50 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", "KS"}

    Returns: 143016116

  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", "5S", "7S", "2D", "3D"}

    Returns: 300609227

  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", "QS", "AC", "4D", "9S"}

    Returns: 842208557

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

    Returns: 1176318675

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

    Returns: 715324751

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

    Returns: 161046921

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

    Returns: 663629031

  26. {"JH", "QD", "AC", "3C", "KH", "AS", "KC", "4S", "QH", "8S", "AH", "6D", "2D", "7H", "9H", "4D", "TS", "KS", "3H", "5S", "QS", "6H", "2C", "6S", "JS", "JC", "2S", "3S", "9D", "AD", "4C", "QC", "TC", "KD", "3D", "8C", "TH", "7S", "7C", "4H", "9S", "6C", "7D", "JD", "8H", "2H", "8D", "TD", "5D", "9C"}

    Returns: 473403040

  27. {"KD", "9D", "TC", "2D", "QD", "7D", "AD", "3C", "JC", "JS", "5C", "3H", "9C", "AS", "TH", "AH", "5S", "4D", "2C", "QC", "8D", "6S", "2H", "JH", "QS", "3D", "4C", "QH", "7C", "4H", "6D", "9S", "5D", "KC", "6H", "TS", "2S", "KS", "8S", "5H", "AC", "6C", "8H", "JD", "4S", "8C", "7S", "9H", "TD", "3S"}

    Returns: 28257519

  28. {"3D", "5C", "2C", "5S", "AD", "8D", "TS", "TD", "KD", "6H", "3C", "7C", "KS", "2S", "AS", "2H", "3H", "8S", "8H", "KH", "4D", "QS", "JS", "8C", "9S", "9H", "KC", "5D", "6C", "5H", "9C", "4H", "7D", "AH", "6S", "JC", "4S", "JD", "7S", "QH", "2D", "QD", "9D", "4C", "TH", "3S", "6D", "AC", "QC", "TC"}

    Returns: 28257519

  29. {"QH", "4H", "3H", "5H", "TH", "KC", "9S", "TD", "5C", "3S", "8D", "9H", "3C", "AS", "7H", "2C", "TC", "6H", "7S", "7D", "JS", "AH", "QC", "JH", "6S", "QD", "6D", "4S", "QS", "5D", "KD", "2D", "4D", "7C", "KH", "KS", "5S", "2S", "6C", "3D", "AD", "2H", "4C", "TS", "9C", "JD", "8H", "8S", "9D", "AC"}

    Returns: 28257519

  30. {"4D", "KC", "AD", "3H", "6H", "5C", "2H", "7H", "4C", "9H", "QH", "JC", "TD", "7D", "TH", "8D", "6D", "2S", "QD", "2C", "4H", "QS", "AC", "5H", "3S", "2D", "KS", "3D", "5S", "5D", "JS", "8C", "AH", "AS", "8S", "7C", "9D", "3C", "JH", "6S", "8H", "6C", "KD", "QC", "TS", "9S", "7S", "TC", "JD", "4S"}

    Returns: 927686905

  31. {"QS", "5S", "TC", "3S", "7C", "6C", "QC", "TS", "5C", "KS", "7S", "AC", "9S", "JS", "8S", "JC", "4C", "6S", "2C", "4S", "8C", "AS", "3C", "KC", "9C", "2S"}

    Returns: 730761671

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

    Returns: 730761671

  33. {"7D", "JD"}

    Returns: 2

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

    Returns: 758538830

  35. {"3D", "6D", "KD", "4H", "5H", "9D", "2D", "2H", "AH", "8D", "8H", "7D", "TD", "QH", "JD", "KH", "4D", "TH", "6H", "AD", "3H", "9H", "JH", "QD", "5D"}

    Returns: 1025257207

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

    Returns: 181838148

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

    Returns: 273808279

  38. {"4C", "KC", "5C", "6C", "3D", "JD", "JC", "3C", "QD", "7D", "7C", "QC", "8D", "4D", "TC", "5D", "2D", "8C", "2C", "AC"}

    Returns: 684893675

  39. {"KC", "9D", "3C", "7C", "4C", "5C", "6C", "TC", "AC", "2C", "QC", "8C"}

    Returns: 0

  40. {"JS", "8S", "AC", "7C", "9C", "TH", "KH", "4D", "5S", "6S", "QD", "TS", "4S", "8D", "2S", "6D", "3S", "7S", "9D", "2H", "AD", "2D", "QS", "JD", "9S", "KC"}

    Returns: 516246970

  41. {"AS", "3C", "5C", "5S", "TS", "KS", "7S", "7D", "9S", "KC", "TC", "QS", "QD", "3D", "5D", "4C", "4D", "2S", "8S", "3S", "3H", "TD", "JS", "2D", "9C", "6H", "2H"}

    Returns: 1080478416

  42. {"9C", "4D", "QH", "8S", "TS", "2S", "6S", "KD", "3D", "6C", "TH", "QC", "JH", "TD", "AS", "3S", "KH", "AH", "QS", "5D", "9S", "AD", "3C", "8C", "7S", "5S", "4S"}

    Returns: 296670937

  43. {"3D", "5D", "3S", "JH", "6S", "JS", "2S", "JC", "6D", "3C", "TC", "8C", "7C", "JD", "AS", "4D", "2D", "7S", "TD", "TS", "5S", "QS", "2H", "QH", "8S", "7H", "KS", "9S"}

    Returns: 1083886613

  44. {"TC", "6C", "AH", "7S", "4H", "AS", "7C", "8H", "QH", "QS", "8C", "9D", "5S", "KS", "JD", "TD", "9S", "QC", "6S", "3C", "9H", "JS", "2H", "2S", "7H", "7D", "8S", "TS", "3S", "4S"}

    Returns: 660699080

  45. {"AD", "9H", "5S", "6D", "AC", "9C", "TS", "2H", "5D", "4S", "TC", "JD", "JC", "6S", "9S", "6H", "QS", "TH", "2S", "KD", "2C", "JH", "4C", "7D", "2D", "7C", "QD", "8C", "3D", "AS", "AH", "4D", "8S", "3H", "8D", "9D", "KC", "TD", "KH", "JS", "KS", "7S", "QH", "8H", "4H", "3S"}

    Returns: 596778613

  46. {"JC", "TH", "8H", "3H", "9S", "7H", "2S", "3C", "2H", "TC", "JH", "JD", "9C", "2D", "TD", "9D", "AD", "8D", "8S", "6S", "6C", "4H", "3S", "7C", "AH", "QH", "KC", "4S", "7S", "4D", "5S", "TS", "KD", "2C", "3D", "5D", "AS", "JS", "KS", "5C", "QD", "4C", "QS", "6D"}

    Returns: 228204152

  47. {"2S", "5H", "JD", "3D", "7H", "5C", "QS", "5D", "3H", "8C", "9S", "QC", "AC", "AH", "6H", "7C", "TD", "9D", "5S", "6D", "TH", "TS", "7D", "JC", "2H", "4H", "4S", "AS", "JH", "9H", "8D", "JS", "6S", "KD", "KS", "3S", "2C", "KH", "AD", "7S", "KC", "4D", "2D", "8S", "QD"}

    Returns: 1147775471

  48. {"2H", "2D", "2S", "2C", "3H", "3D", "3S"}

    Returns: 640

  49. {"JS", "JC", "JD" }

    Returns: 6

  50. {"2S", "2C", "3S", "3C" }

    Returns: 24

  51. {"2S", "3S", "4S", "5S", "6S", "7S", "8S", "9S", "TS", "JS", "QS", "KS", "AS", "2C", "3C", "4C", "5C", "6C", "7C", "8C", "9C", "TC", "JC", "QC", "KC", "AC", "2D", "3D", "4D", "5D", "6D", "7D", "8D", "9D", "TD", "JD", "QD", "KD", "AD", "2H", "3H", "4H", "5H", "6H", "7H", "8H", "9H", "TH", "JH", "QH" }

    Returns: 28257519

  52. {"2S", "2H", "2C", "2D", "3S", "3H", "3C", "3D", "4S", "4H", "4C", "5S", "5H", "5D", "5C", "6S", "6H", "6C", "6D", "TS", "TH", "TC", "TD", "AS", "AH", "AC", "AD", "QS", "QH", "QC", "QD", "JS", "JH", "JC", "JD", "7S", "7H", "7C", "7D", "8S", "8H", "8C", "8D", "KS", "KH", "KC", "KD" }

    Returns: 766913999


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: