ACSL Practice 2009
Task 7: Cube
Folding six squares connected in some special ways can form a cube. For example, in the diagram below, the six squares on the left can be folded into a cube (with face 1 opposite face 4, face 2 opposite face 6, and face 3 opposite face 5) but the six squares on the right cannot be folded into a cube (faces 3 and 5 overlap).
A 6 × 6 array is used to represent the six squares. Only 6 of the 36 cells are used to represent the 6 squares. A cell representing a square contains the number for the square. Other cells contain the number 0. Note that the same 6 squares can be represented in many ways. For example, the invalid six squares of the above example can be represented as follows (the one on the right is obtained after a 90 degree rotation of the one on the left):
0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 5 0 0 0 0 0 0 0 0 1 2 4 6 0 0 0 0 0 0 5 6 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 3 2 0 0 0 0 0 0 0 0 0 0 0 1
Given a square representation, determine if the squares can be folded into a cube; if so, find the face opposite face 1.
Input
The input consists of six lines with each line containing six integers. All but six of the input integers are zeros. The non-zero integers are 1, 2, 3, 4, 5, 6.
Output
The output file consists of a single integer. The integer is 0 if the squares cannot be folded into a cube; otherwise, the integer is the number of the face opposite face 1.
Sample Input
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 5 2 3 0 0 0 0 4 0 0 0 0 0 6 0 0 0
Sample Output
4
Diagram
All Submissions
Best Solutions
Point Value: 20
Time Limit: 2.00s
Memory Limit: 16M
Added: May 19, 2009
Languages Allowed:
C++03, PAS, C, HASK, ASM, RUBY, PYTH2, JAVA, PHP, SCM, CAML, PERL, C#, C++11, PYTH3
Comments (Search)