Hãy tưởng tượng một bó các hình chữ nhật được vẽ trong mặt phẳng, mỗi hình chữ nhật có các đỉnh của nó tại tọa độ nguyên và các cạnh của nó song song với các trục:
Các hình chữ nhật phân vùng mặt phẳng thành một số vùng khác nhau, được tô màu đỏ và xanh bên dưới:
Mục tiêu của bạn là tìm ra số lượng các khu vực như vậy là hình vuông hoàn hảo. Trong ví dụ trên, có ba:
Lưu ý rằng hình vuông lớn ở giữa không được tính vì nó không phải là một khu vực duy nhất, mà thay vào đó được tạo thành từ một số khu vực tách rời nhỏ hơn.
Đầu vào
Bạn có thể viết một chức năng hoặc một chương trình đầy đủ cho thử thách này.
Đầu vào sẽ là các 4n
số nguyên không âm xác định n
hình chữ nhật trong mặt phẳng. Mỗi hình chữ nhật được đại diện bởi hai đỉnh đối diện, ví dụ: 4 9 7 8
đại diện cho hình chữ nhật với các đỉnh đối diện (4, 9)
và (7, 8)
. Lưu ý rằng hình chữ nhật này cũng có thể được biểu diễn dưới dạng 7 8 4 9
hoặc 4 8 7 9
.
Định dạng đầu vào chính xác là linh hoạt (ví dụ: chuỗi được phân tách bằng dấu cách, chuỗi được phân tách bằng dấu phẩy, một mảng số nguyên, danh sách các bộ tọa độ, v.v.) nhưng vui lòng hợp lý và đưa ra ví dụ về cách chạy mã của bạn trong bài đăng của bạn. Bạn không thể sắp xếp lại đầu vào.
Để đơn giản, bạn có thể giả định rằng sẽ không có hai cạnh nào bị chồng chéo - điều này bao gồm sự chồng chéo ở một đỉnh. Cụ thể, điều này ngụ ý rằng sẽ không có hai hình chữ nhật nào được chạm từ cạnh này sang góc kia hoặc góc này sang góc kia và hình chữ nhật sẽ có diện tích khác.
Đầu ra
Chương trình của bạn sẽ in hoặc trả về một số nguyên duy nhất, đó là số vùng vuông.
Chấm điểm
Đây là mã golf, vì vậy mã trong ít byte nhất sẽ thắng.
Các trường hợp thử nghiệm
Đầu vào:
0 0 5 5
6 8 10 4
14 16 11 13
19 1 18 2
Đầu ra:
4
Đây chỉ đơn giản là bốn ô vuông rời nhau:
Đầu vào:
2 1 3 11
1 10 5 19
6 10 11 3
8 8 15 15
13 13 9 5
15 1 19 7
17 19 19 17
Đầu ra:
3
Đây là trường hợp thử nghiệm ví dụ ở đầu bài.
Đầu vào:
0 9 15 12
6 3 18 15
9 6 12 20
13 4 17 8
Đầu ra:
7
Đầu vào:
5 9 11 10
5 12 11 13
6 8 7 14
9 8 10 14
13 8 14 9
13 10 14 14
Đầu ra:
14
Đầu vào:
0 99999 100000 0
Đầu ra:
0
Đây chỉ là một hình chữ nhật lớn.
Đầu vào:
0 99999 100000 0
2 1 142857 285714
Đầu ra:
1
Hai hình chữ nhật lớn chồng lên nhau.