Statistics

Problem Statement for "TrisomorphismEasy"

Problem Statement

Let S(n) be the set of directed graphs with n vertices labeled from 0 to n-1 such that there is exactly one outgoing edge from each vertex. Self-loops are allowed. Therefore, we have |S(n)| = nn.

Given such a graph, a twirl is an operation that takes three distinct vertices labeled A, B, C and relabels them B, C, A. For example, if you choose the vertices labeled 4, 2, and 77, the following three things will happen simultaneously:

  • The label of the first chosen vertex will change from 4 to 2.
  • The label of the second chosen vertex will change from 2 to 77.
  • The label of the third chosen vertex will change from 77 to 4.

Two graphs are called trisomorphic if we can transform one into the other by performing a sequence of zero or more twirls.

You are given the int[] edgeTo with n elements. This int[] describes a graph G from the set S(n). For each valid i, the graph G contains an edge from vertex i to vertex edgeTo[i].

Return the number of graphs other than G that are trisomorphic to G.

Definition

Class:
TrisomorphismEasy
Method:
count
Parameters:
int[]
Returns:
int
Method signature:
int count(int[] edgeTo)
(be sure your method is public)

Constraints

  • n will be between 1 and 10, inclusive.
  • edgeTo will contain exactly n elements.
  • Each element of edgeTo will be between 0 and n-1, inclusive.

Examples

  1. {1, 0}

    Returns: 0

    It's impossible to pick three distinct vertices when n = 2. Every graph is trisomorphic to itself only.

  2. {2, 2, 0}

    Returns: 2

    The other two graphs trisomophic to the given one are {1, 2, 1} and {1, 0, 0}.

  3. {0, 1, 2, 3}

    Returns: 0

    Any twirl applied to this graph keeps it unchanged.

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

    Returns: 179

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

    Returns: 1814399

  6. {0}

    Returns: 0

  7. {0, 0}

    Returns: 0

  8. {0, 1, 2}

    Returns: 0

  9. {1, 1, 2}

    Returns: 2

  10. {0, 1, 2, 3}

    Returns: 0

  11. {3, 2, 1, 0}

    Returns: 2

  12. {2, 2, 2, 2}

    Returns: 3

  13. {0, 2, 2, 0}

    Returns: 5

  14. {2, 3, 1, 3}

    Returns: 11

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

    Returns: 0

  16. {4, 4, 4, 4, 4}

    Returns: 4

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

    Returns: 9

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

    Returns: 11

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

    Returns: 14

  20. {2, 2, 3, 2, 2}

    Returns: 19

  21. {0, 1, 1, 3, 0}

    Returns: 29

  22. {1, 0, 3, 0, 0}

    Returns: 59

  23. {0, 1, 2, 3, 4, 5}

    Returns: 0

  24. {0, 0, 0, 0, 0, 0}

    Returns: 5

  25. {2, 3, 0, 1, 5, 4}

    Returns: 14

  26. {4, 4, 4, 4, 5, 5}

    Returns: 29

  27. {1, 5, 4, 2, 3, 0}

    Returns: 39

  28. {2, 1, 0, 5, 4, 3}

    Returns: 44

  29. {2, 1, 2, 2, 4, 2}

    Returns: 59

  30. {5, 4, 1, 3, 0, 2}

    Returns: 71

  31. {3, 2, 2, 3, 2, 3}

    Returns: 89

  32. {5, 4, 3, 5, 3, 4}

    Returns: 119

  33. {0, 2, 0, 2, 5, 4}

    Returns: 179

  34. {5, 5, 5, 5, 3, 1}

    Returns: 359

  35. {0, 1, 2, 3, 4, 5, 6}

    Returns: 0

  36. {6, 6, 6, 6, 6, 6, 6}

    Returns: 6

  37. {0, 1, 2, 6, 4, 5, 3}

    Returns: 20

  38. {0, 1, 2, 3, 4, 1, 6}

    Returns: 41

  39. {0, 1, 2, 6, 4, 3, 5}

    Returns: 69

  40. {2, 5, 2, 2, 2, 1, 2}

    Returns: 104

  41. {0, 6, 6, 6, 4, 5, 6}

    Returns: 139

  42. {0, 1, 2, 4, 3, 5, 3}

    Returns: 209

  43. {3, 2, 2, 5, 2, 0, 2}

    Returns: 279

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

    Returns: 314

  45. {2, 0, 3, 4, 6, 1, 5}

    Returns: 359

  46. {6, 5, 6, 3, 6, 1, 6}

    Returns: 419

  47. {0, 1, 3, 5, 2, 6, 4}

    Returns: 503

  48. {1, 6, 1, 5, 5, 6, 6}

    Returns: 629

  49. {0, 5, 5, 0, 3, 5, 5}

    Returns: 839

  50. {0, 6, 2, 3, 3, 2, 1}

    Returns: 1259

  51. {0, 0, 5, 1, 6, 4, 6}

    Returns: 2519

  52. {0, 1, 2, 3, 4, 5, 6, 7}

    Returns: 0

  53. {1, 1, 1, 1, 1, 1, 1, 1}

    Returns: 7

  54. {0, 1, 3, 2, 4, 5, 6, 7}

    Returns: 27

  55. {3, 1, 3, 1, 3, 3, 3, 3}

    Returns: 55

  56. {5, 6, 3, 2, 7, 0, 1, 4}

    Returns: 104

  57. {0, 2, 7, 3, 4, 5, 6, 1}

    Returns: 111

  58. {0, 1, 2, 6, 6, 5, 6, 7}

    Returns: 167

  59. {0, 6, 2, 3, 4, 7, 1, 5}

    Returns: 209

  60. {4, 4, 4, 4, 4, 5, 6, 7}

    Returns: 279

  61. {4, 4, 4, 4, 1, 4, 1, 4}

    Returns: 335

  62. {0, 7, 2, 3, 4, 6, 1, 5}

    Returns: 419

  63. {6, 0, 6, 0, 6, 0, 0, 6}

    Returns: 559

  64. {3, 6, 4, 0, 2, 7, 1, 7}

    Returns: 839

  65. {6, 7, 0, 4, 5, 3, 2, 1}

    Returns: 1119

  66. {1, 3, 5, 7, 6, 2, 4, 0}

    Returns: 1259

  67. {0, 1, 3, 4, 7, 2, 6, 5}

    Returns: 1343

  68. {5, 5, 5, 3, 0, 0, 5, 5}

    Returns: 1679

  69. {0, 4, 2, 7, 4, 3, 6, 5}

    Returns: 2239

  70. {7, 4, 5, 4, 4, 2, 6, 0}

    Returns: 2519

  71. {2, 4, 7, 0, 6, 5, 3, 1}

    Returns: 2879

  72. {0, 3, 1, 0, 4, 1, 1, 7}

    Returns: 3359

  73. {7, 1, 6, 5, 2, 4, 3, 0}

    Returns: 4031

  74. {7, 0, 7, 7, 0, 3, 3, 7}

    Returns: 5039

  75. {2, 7, 0, 7, 7, 5, 2, 2}

    Returns: 6719

  76. {2, 2, 1, 7, 2, 6, 0, 0}

    Returns: 10079

  77. {1, 4, 7, 5, 4, 7, 1, 2}

    Returns: 20159

  78. {0, 1, 2, 3, 4, 5, 6, 7, 8}

    Returns: 0

  79. {6, 6, 6, 6, 6, 6, 6, 6, 6}

    Returns: 8

  80. {0, 1, 5, 3, 4, 2, 6, 7, 8}

    Returns: 35

  81. {7, 7, 2, 7, 7, 7, 7, 2, 7}

    Returns: 71

  82. {0, 1, 2, 6, 4, 5, 8, 7, 3}

    Returns: 167

  83. {8, 7, 8, 8, 8, 8, 8, 1, 8}

    Returns: 251

  84. {8, 1, 7, 3, 4, 5, 6, 2, 0}

    Returns: 377

  85. {0, 1, 2, 3, 2, 5, 6, 4, 8}

    Returns: 503

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

    Returns: 629

  87. {0, 5, 3, 1, 4, 2, 6, 7, 8}

    Returns: 755

  88. {7, 6, 8, 4, 3, 5, 1, 0, 2}

    Returns: 944

  89. {8, 8, 8, 6, 8, 8, 7, 3, 8}

    Returns: 1007

  90. {0, 6, 2, 4, 3, 7, 1, 5, 8}

    Returns: 1259

  91. {5, 8, 5, 5, 5, 5, 5, 8, 5}

    Returns: 1511

  92. {6, 3, 3, 3, 3, 3, 0, 8, 7}

    Returns: 1889

  93. {1, 5, 6, 4, 8, 0, 7, 2, 3}

    Returns: 2239

  94. {3, 7, 7, 3, 7, 3, 7, 7, 3}

    Returns: 2519

  95. {7, 0, 0, 0, 0, 7, 0, 0, 8}

    Returns: 3023

  96. {2, 1, 3, 0, 4, 5, 8, 6, 7}

    Returns: 3359

  97. {2, 6, 2, 7, 5, 4, 1, 3, 2}

    Returns: 3779

  98. {0, 8, 2, 6, 6, 6, 6, 7, 1}

    Returns: 5039

  99. {7, 5, 4, 4, 2, 1, 8, 0, 6}

    Returns: 7559

  100. {8, 2, 3, 5, 6, 7, 4, 1, 0}

    Returns: 9071

  101. {6, 2, 2, 2, 6, 5, 5, 2, 6}

    Returns: 10079

  102. {5, 0, 1, 4, 6, 2, 8, 7, 3}

    Returns: 11339

  103. {1, 1, 5, 7, 3, 4, 1, 2, 1}

    Returns: 12095

  104. {0, 4, 4, 4, 7, 7, 4, 8, 7}

    Returns: 15119

  105. {2, 5, 6, 0, 1, 7, 3, 8, 4}

    Returns: 18143

  106. {7, 6, 2, 3, 0, 5, 8, 4, 8}

    Returns: 20159

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

    Returns: 22679

  108. {8, 3, 6, 7, 1, 2, 4, 5, 0}

    Returns: 25919

  109. {3, 3, 4, 6, 3, 7, 6, 5, 3}

    Returns: 30239

  110. {6, 7, 8, 6, 2, 0, 6, 4, 1}

    Returns: 36287

  111. {7, 2, 1, 0, 3, 6, 5, 3, 4}

    Returns: 45359

  112. {6, 2, 8, 7, 6, 7, 4, 3, 2}

    Returns: 60479

  113. {3, 4, 1, 8, 2, 1, 8, 7, 0}

    Returns: 90719

  114. {8, 5, 4, 6, 1, 8, 0, 2, 4}

    Returns: 181439

  115. {6, 6, 6, 6, 6, 6, 6, 6, 6, 6}

    Returns: 9

  116. {3, 3, 3, 2, 3, 3, 3, 3, 3, 3}

    Returns: 89

  117. {6, 6, 6, 6, 6, 9, 6, 6, 6, 5}

    Returns: 359

  118. {5, 3, 3, 5, 3, 3, 3, 3, 3, 3}

    Returns: 719

  119. {2, 1, 2, 3, 2, 2, 2, 2, 8, 2}

    Returns: 839

  120. {0, 0, 2, 3, 0, 0, 6, 7, 8, 0}

    Returns: 1259

  121. {3, 1, 0, 2, 1, 1, 1, 1, 1, 1}

    Returns: 1679

  122. {5, 5, 5, 3, 4, 8, 5, 5, 8, 5}

    Returns: 2519

  123. {0, 8, 0, 8, 8, 0, 0, 0, 8, 8}

    Returns: 3149

  124. {4, 9, 4, 4, 4, 7, 4, 5, 4, 1}

    Returns: 3779

  125. {5, 7, 5, 5, 5, 7, 5, 7, 5, 9}

    Returns: 5039

  126. {8, 1, 0, 3, 0, 0, 0, 7, 8, 9}

    Returns: 6299

  127. {8, 8, 3, 9, 8, 8, 8, 2, 8, 7}

    Returns: 7559

  128. {8, 0, 4, 4, 4, 5, 4, 4, 1, 4}

    Returns: 10079

  129. {0, 2, 2, 3, 9, 2, 2, 2, 8, 4}

    Returns: 12599

  130. {1, 0, 4, 4, 4, 9, 4, 4, 4, 4}

    Returns: 15119

  131. {4, 4, 4, 8, 6, 7, 4, 5, 3, 4}

    Returns: 18899

  132. {0, 1, 5, 5, 4, 5, 5, 6, 5, 9}

    Returns: 25199

  133. {5, 6, 4, 4, 0, 6, 5, 4, 4, 4}

    Returns: 30239

  134. {9, 3, 8, 3, 0, 3, 3, 2, 7, 4}

    Returns: 33599

  135. {0, 8, 4, 4, 3, 5, 4, 4, 1, 4}

    Returns: 37799

  136. {7, 7, 7, 8, 8, 5, 8, 9, 9, 9}

    Returns: 50399

  137. {9, 2, 1, 9, 8, 6, 9, 6, 4, 6}

    Returns: 56699

  138. {0, 2, 2, 7, 0, 2, 0, 2, 0, 0}

    Returns: 75599

  139. {2, 6, 1, 2, 4, 2, 9, 7, 8, 1}

    Returns: 100799

  140. {5, 6, 0, 8, 2, 4, 8, 6, 6, 8}

    Returns: 113399

  141. {2, 4, 5, 7, 0, 1, 7, 9, 7, 7}

    Returns: 120959

  142. {1, 4, 5, 1, 5, 1, 1, 1, 8, 4}

    Returns: 151199

  143. {0, 2, 7, 5, 8, 4, 5, 1, 0, 5}

    Returns: 201599

  144. {7, 0, 6, 0, 0, 6, 0, 0, 3, 3}

    Returns: 226799

  145. {6, 2, 9, 5, 8, 7, 4, 5, 5, 5}

    Returns: 1814399

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

    Returns: 0

  147. {4, 4, 6, 0, 0, 1, 3, 9, 2, 3}

    Returns: 1814399

  148. {6, 6, 8, 7, 0, 7, 4, 1, 0, 0}

    Returns: 1814399

  149. {9, 2, 6, 1, 5, 5, 1, 2, 1, 9}

    Returns: 907199

  150. {7, 3, 4, 3, 7, 3, 3, 7, 8, 7}

    Returns: 302399

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

    Returns: 362879

  152. {1, 4, 1, 2, 5, 1, 6, 2, 8, 1}

    Returns: 453599

  153. {0, 2, 8, 2, 0, 8, 0, 2, 5, 6}

    Returns: 604799

  154. {9, 5, 1, 8, 3, 6, 9, 8, 3, 2}

    Returns: 907199

  155. {7, 6, 4, 8, 6, 0, 3, 9, 4, 3}

    Returns: 1814399

  156. {2, 2, 0 }

    Returns: 2

  157. {0, 4, 7, 1, 5, 4, 2, 8, 4, 6 }

    Returns: 1814399

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

    Returns: 0

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

    Returns: 1814399


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: