Bùa hộ mệnh của Cheaterius

Đề bài

Mô tả

Cho n tấm bùa, mỗi tấm là một hình vuông 2×2 trong đó mỗi ô chứa một số nguyên từ 1 đến 6 (biểu diễn số chấm trên mặt một con xúc xắc domino).

Hai tấm bùa được coi là giống nhau nếu có thể xoay một trong hai tấm bùa một góc 90°, 180° hoặc 270° sao cho các ô tương ứng có cùng giá trị. Không được phép lật ngược (chỉ xoay).

Hãy chia n tấm bùa thành các nhóm sao cho mỗi nhóm chỉ chứa các tấm bùa giống nhau. In ra số nhóm tối thiểu cần dùng (tức là số lớp tương đương dưới quan hệ "giống nhau").

Dữ liệu vào

  • Dòng đầu chứa số nguyên n — số lượng tấm bùa.
  • Tiếp theo là mô tả của n tấm bùa. Mỗi tấm bùa được mô tả bằng hai dòng, mỗi dòng gồm 2 chữ số (mỗi chữ số từ 1 đến 6) biểu diễn một hàng của hình vuông 2×2.
  • Giữa hai tấm bùa liên tiếp có một dòng chứa đúng chuỗi **.

Dữ liệu ra

In ra một số nguyên — số nhóm tương đương.

Ràng buộc

  • 1n1000
  • Mỗi ô của tấm bùa là một số nguyên trong đoạn [1,6].

Ví dụ

Input Output Giải thích
4
31
23
**
31
23
**
13
32
**
32
13
1 Tấm 1 và tấm 2 giống hệt. Tấm 3 nhận được từ tấm 1 sau khi xoay 90°, còn tấm 4 nhận được từ tấm 1 sau khi xoay 180°. Tất cả 4 tấm bùa thuộc cùng một nhóm.
4
51
26
**
54
35
**
25
61
**
45
53
2 Tấm 1 và tấm 3 cùng nhóm (xoay 180°); tấm 2 và tấm 4 cùng nhóm (xoay 180°). Có 2 nhóm.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0