| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | BOI 2014 - Demarcation | 100 (p) | 0.5s | 256M |
| 2 | BOI 2014 - Portals | 100 (p) | 1.0s | 256M |
| 3 | BOI 2014 - Senior Postmen | 100 (p) | 0.5s | 256M |
Hòn đảo Bytopia từng được trị vì trong một thời gian dài bởi vị vua công minh Byteasar. Sau khi nhà vua đột ngột qua đời, hai người con sinh đôi Biteon và Byteon không thể thống nhất ai sẽ lên ngôi. Họ quyết định chia hòn đảo thành hai tỉnh để cai trị riêng.
Trên bản đồ hình chữ nhật, hòn đảo có dạng một đa giác gồm \(N\) đỉnh. Mỗi cạnh của đa giác song song với một cạnh của bản đồ; hai cạnh liên tiếp luôn vuông góc. Các cạnh không cắt hay chạm nhau, ngoại trừ đầu mút chung của hai cạnh liên tiếp.
Biteon và Byteon muốn dùng đúng một đoạn thẳng nằm trong đa giác, song song với một cạnh của bản đồ, để chia hòn đảo thành hai đa giác bằng nhau. Hai đa giác được gọi là bằng nhau nếu có thể biến đổi đa giác này thành đa giác kia bằng một tổ hợp các phép đối xứng, quay và tịnh tiến. Tọa độ các đỉnh và hai đầu mút của đoạn chia đều phải là số nguyên.
Hãy xác định liệu có thể chia hòn đảo thành hai phần bằng nhau bằng một đoạn thẳng nằm ngang hoặc thẳng đứng hay không. Nếu có, hãy tìm một đoạn như vậy.
Dòng đầu chứa số nguyên \(N\), số đỉnh của đa giác.
Dòng thứ \(i\) trong \(N\) dòng tiếp theo chứa hai số nguyên \(X_i,Y_i\), tọa độ đỉnh thứ \(i\).
Các đỉnh được cho theo thứ tự trên biên đa giác. Các cạnh là đoạn nối đỉnh \(i\) với đỉnh \(i+1\) với \(1 \le i<N\), cùng đoạn nối đỉnh \(N\) với đỉnh \(1\). Hai cạnh liên tiếp luôn vuông góc.
Nếu có cách chia hợp lệ với hai đầu mút \((x_1,y_1)\) và \((x_2,y_2)\), in bốn số nguyên \(x_1,y_1,x_2,y_2\) trên một dòng, cách nhau bởi dấu cách. Đoạn chia phải nằm ngang hoặc thẳng đứng, tức là \(x_1=x_2\) hoặc \(y_1=y_2\). Đoạn phải nằm trong đa giác và chỉ hai đầu mút của nó được chạm biên đa giác. Hai phần thu được phải là hai đa giác bằng nhau. Có thể in bất kỳ cách chia hợp lệ nào.
Nếu không có cách chia như vậy, in NO.
Ví dụ 1
10
0 0
1 0
1 1
3 1
3 5
2 5
2 3
1 3
1 2
0 2
1 2 3 2
Trong mê cung có một chiếc bánh mà bạn rất muốn ăn. Bản đồ mê cung là một lưới gồm \(R\) hàng và \(C\) cột. Mỗi ô chứa một trong bốn ký tự:
#: một khối tường..: một ô trống.S: ô trống tại vị trí ban đầu của bạn.C: ô trống chứa chiếc bánh.Bạn chỉ được đi trên các ô trống, và có thể đi từ một ô sang một ô trống có chung cạnh với nó. Toàn bộ vùng hình chữ nhật trên bản đồ được bao quanh bởi các khối tường.
Để đến chiếc bánh nhanh hơn, bạn có một khẩu súng tạo cổng của Aperture Science™. Bất kỳ lúc nào, bạn có thể bắn một cổng theo một trong bốn hướng lên, trái, xuống hoặc phải. Cổng bay theo hướng đó cho đến khi gặp khối tường đầu tiên, rồi xuất hiện trên mặt của khối tường hướng về phía bạn.
Tại mỗi thời điểm chỉ có tối đa hai cổng. Nếu đã có hai cổng, ngay khi bắn thêm một cổng, bạn phải chọn một trong hai cổng cũ để xóa. Bắn vào vị trí đang có cổng sẽ thay thế cổng đó: mỗi mặt của một khối tường có tối đa một cổng. Hai mặt khác nhau của cùng một khối tường có thể cùng chứa cổng.
Khi có hai cổng, bạn có thể dùng chúng để dịch chuyển. Đứng ở ô trống ngay cạnh một cổng, bạn có thể bước vào cổng đó và xuất hiện ở ô trống ngay cạnh cổng còn lại. Việc này mất thời gian bằng một bước đi giữa hai ô kề cạnh.
Việc bắn cổng không tốn thời gian. Mỗi bước đi giữa hai ô kề cạnh hoặc mỗi lần dịch chuyển qua cổng tốn một đơn vị thời gian.
Cho bản đồ mê cung, vị trí ban đầu và vị trí chiếc bánh, hãy tính thời gian ít nhất để đến chiếc bánh.
Dòng đầu chứa hai số nguyên \(R,C\), lần lượt là số hàng và số cột của bản đồ.
\(R\) dòng tiếp theo mô tả bản đồ; mỗi dòng gồm đúng \(C\) ký tự thuộc tập #, ., S, C. Mỗi ký tự S và C xuất hiện đúng một lần.
In một số nguyên: thời gian ít nhất để đi từ vị trí ban đầu đến chiếc bánh. Dữ liệu bảo đảm có thể đến được chiếc bánh.
Năm 2036, người cao tuổi chiếm phần lớn dân số châu Âu. Để giúp họ duy trì sức khỏe, cơ quan phụ trách nhóm dân số này đề xuất giao cho họ việc phát lượng thư giấy ít ỏi còn được gửi, chủ yếu cũng dành cho người cao tuổi. Đề xuất sẽ được triển khai trên toàn châu Âu.
Châu Âu được chia thành các khu vực bưu chính. Mỗi khu vực có một mạng lưới gồm các con đường và giao lộ; mỗi con đường đều đi được theo hai chiều. Có thể thuê bao nhiêu người đưa thư trong mỗi khu vực tùy ý. Mỗi sáng, một người đưa thư nhận một túi thư để phát theo một hành trình đi qua một phần của mạng lưới.
Mỗi hành trình phải phù hợp với người cao tuổi, nghĩa là:
Các hành trình phải phủ toàn bộ mạng lưới: mỗi con đường thuộc đúng một hành trình.
Hãy tìm một tập hành trình thỏa mãn các điều kiện trên cho mạng lưới đường phố đã cho.
Dòng đầu chứa hai số nguyên \(N,M\), lần lượt là số giao lộ và số con đường. Các giao lộ được đánh số từ \(1\) đến \(N\).
Mỗi dòng trong \(M\) dòng tiếp theo chứa hai số nguyên \(u,v\), cho biết có một con đường nối giao lộ \(u\) với giao lộ \(v\).
Dữ liệu luôn thỏa mãn:
Mỗi dòng mô tả một hành trình bằng dãy số hiệu các giao lộ theo thứ tự người đưa thư đi qua. Giao lộ xuất phát, cũng là giao lộ kết thúc, được in đầu tiên và chỉ in đúng một lần. Sau giao lộ cuối cùng được in, người đưa thư quay về giao lộ đầu tiên.
Nếu có nhiều đáp án, có thể in bất kỳ đáp án hợp lệ nào.
Ví dụ 1
10 15
1 3
5 1
2 3
9 2
3 4
6 3
4 5
7 4
4 8
5 7
8 5
6 7
7 8
8 10
10 9
2 3 4 5 8 10 9
7 8 4
1 5 7 6 3