TheHexagonsDivOne
SRM 457 · 2009-11-12 · by vexorian
SRM 457 · 2009-11-12 · by vexorian · Graph Theory, Simulation
Problem Statement
Problem Statement
John and Brus are interested in a new game called "Hexagon Flower". The rules are simple. You are given a flower formed by seven hexagons arranged as follows:

The objective of the game is to place a number in each hexagon of the flower such that all of the following conditions are satisfied:
Given n, return the total number of distinct solutions. Two solutions are considered the same if you can rotate one to form the other.
For example, if n = 4 then:

The top three placements are not valid. The other three placements are valid, but the first two among them are considered equal since one can be rotated to become the other.

The objective of the game is to place a number in each hexagon of the flower such that all of the following conditions are satisfied:
- Each number is an integer between 1 and n*2, inclusive.
- Each number is distinct.
- For every pair of adjacent hexagons, if the numbers placed in them are a and b, then a%n != b%n.
Given n, return the total number of distinct solutions. Two solutions are considered the same if you can rotate one to form the other.
For example, if n = 4 then:

The top three placements are not valid. The other three placements are valid, but the first two among them are considered equal since one can be rotated to become the other.
Constraints
- n will be between 1 and 150, inclusive.
Examples
0)
3 Returns: 0
There are not enough numbers to fill the flower with.
1)
4 Returns: 256
2)
8 Returns: 3458560
3)
20 Returns: 11193888000
4)
1 Returns: 0
Submissions are judged against all 151 archived test cases, of which 5 are shown here. Case numbers match the judge’s.
Coding Area
Language: C++17 · define a public class TheHexagonsDivOne with a public method long long count(int n) · 151 test cases · 2 s / 256 MB per case