Trung đội gọn

Đề bài

Mô tả

n trung đội, mỗi trung đội gồm đúng 4 con chuột chũi. Mỗi con chuột được đặt tại một vị trí (xi,yi) trên mặt phẳng toạ độ, và có một "nhà" tại vị trí (ai,bi).

Một thao tác lên con chuột thứ iquay vị trí (xi,yi) của nó 90 độ ngược chiều kim đồng hồ quanh điểm nhà (ai,bi). Một con chuột có thể được thao tác nhiều lần liên tiếp (mỗi lần quay thêm 90 độ quanh nhà của chính nó).

Một trung đội được gọi là gọn nếu 4 vị trí của 4 con chuột tạo thành một hình vuông có diện tích khác 0 (bốn đỉnh phân biệt).

Với mỗi trung đội, hãy tìm số thao tác nhỏ nhất cần thực hiện để trung đội đó trở nên gọn, hoặc cho biết điều đó là không thể.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n, số trung đội.
  • 4n dòng tiếp theo, mỗi dòng chứa 4 số nguyên xi, yi, ai, bi. Cứ 4 dòng liên tiếp mô tả một trung đội (theo thứ tự).

Dữ liệu ra

In ra n dòng. Dòng thứ i chứa số thao tác nhỏ nhất để trung đội thứ i trở nên gọn, hoặc 1 nếu không thể.

Ràng buộc

  • 1n100
  • 104xi,yi,ai,bi104

Ví dụ

Input Output Giải thích
4
1 1 0 0
-1 1 0 0
-1 1 0 0
1 -1 0 0
1 1 0 0
-2 1 0 0
-1 1 0 0
1 -1 0 0
1 1 0 0
-1 1 0 0
-1 1 0 0
-1 1 0 0
2 2 0 1
-1 0 0 -2
3 0 0 -2
-1 1 -2 0
1
-1
3
3
Trung đội 1: chỉ cần quay 1 lần con chuột thứ hai (hoặc thứ ba). Trung đội 2: không thể làm gọn. Trung đội 3: từ ba con cuối, quay 1 con một lần và 1 con hai lần. Trung đội 4: quay con thứ nhất hai lần và con thứ ba một lần.
1
1 0 2 0
-1 0 -2 0
0 1 0 2
0 -1 0 -2
0 Bốn điểm (1,0),(1,0),(0,1),(0,1) đã tạo thành hình vuông (nghiêng 45 độ) nên không cần thao tác nào.
1
2 1 0 0
-2 1 0 0
2 -1 0 0
-2 -1 0 0
-1 Dù quay thế nào bốn điểm cũng chỉ nằm trên một hình chữ nhật 4×2, không bao giờ thành hình vuông.

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