Clue Contest 08 - Cờ Caro
Xem dạng PDFĐây là bài toán tương tác.
Nhắc tới 12 năm học trò, có lẽ đó là quãng thời gian thanh xuân rực rỡ và thuần khiết nhất mà bất kỳ ai đã đi qua đều mang theo một niềm khắc khoải mong nhớ. Đó là những buổi sáng vội vã đạp xe dưới vòm cây rợp bóng, là tiếng trống trường vang vọng xé toạc không gian tĩnh lặng, và là những rung động ngây ngô giấu kín dưới ngăn bàn. Những năm tháng ấy trôi qua nhanh như một cái chớp mắt, nhường chỗ cho những bộn bề lo toan của tuổi trưởng thành, nhưng lại để lại trong hành trang bước vào đời của mỗi người là vô vàn những kỷ niệm đẹp đẽ, trong trẻo không thể nào bôi xóa.
Và trong chiếc hộp lưu giữ những ký ức vô giá ngày ấy, có lẽ, trò chơi cờ caro vẫn luôn nằm gọn gàng, vẹn nguyên ở một góc nhỏ thân thương nhất. Không cần đến những thiết bị điện tử đắt tiền hay mạng internet siêu tốc, một "trận chiến" nảy lửa có thể dễ dàng được triển khai chỉ bằng một trang giấy nháp xé vội và hai chiếc bút bi. Những đường kẻ ngang dọc vụng về dần được lấp đầy bởi những dấu X và O, mang theo cả sự tập trung cao độ, những tiếng cười khúc khích nén chặt, và đôi khi là cả cái giật mình thon thót khi bất chợt bắt gặp ánh mắt nghiêm khắc của thầy cô đang nhìn xuống từ bục giảng.
Trò chơi giản dị ấy không chỉ là phương thức hoàn hảo để những cô cậu học trò xua đi cơn buồn ngủ trong các tiết học dài lê thê, mà còn là sợi dây vô hình gắn kết những tình bạn tuổi hồng. Mỗi ván cờ khép lại, tờ giấy nháp chằng chịt vết mực lại được vo tròn nhét vội vào hộc bàn, nhưng những khoảnh khắc "đấu trí" ngây ngô, những lần năn nỉ xin đi lại một nước hay tiếng reo hò đắc thắng sẽ còn in hằn mãi theo năm tháng. Để rồi nhiều năm sau, giữa bộn bề cuộc sống, khi vô tình nhìn thấy một tờ giấy kẻ ô li, ta lại bất giác mỉm cười, nhớ về một thời ta đã từng có một "đối thủ" ngồi cùng bàn tuyệt vời đến thế.
Trong bài toán này, chúng ta xét một trò chơi cờ caro đơn giản với bảng kích thước ~3636 \times 3636~, với các hàng và cột được đánh số từ ~1~. Bạn sẽ chơi với máy chấm, và bạn được quyền chọn đi trước hay đi sau. Bạn sẽ thắng nếu tạo được một hàng ngang, một cột dọc, hay một đường chéo với độ dài ~3~.
Bạn chỉ được đi tối đa ~100~ nước, nếu vượt quá con số này, bạn sẽ thua cuộc.
Tương tác
Đầu tiên, chương trình của bạn cần in ra first hoặc second tương ứng bạn muốn đi trước hay đi sau.
Sau đó, trò chơi bắt đầu. Các lượt đi sẽ diễn ra luân phiên:
- Đến lượt bạn: Bạn cần in ra hai số nguyên dương ~x, y~ (~1 \le x, y \le 3636~) tương ứng ô bạn muốn đi. Ô này phải chưa từng được đi trước đó.
- Đến lượt máy chấm: Máy chấm sẽ in ra hai số nguyên dương ~x, y~ tương tự như trên, hoặc hai số ~-1~ nếu máy chấm nhận thua. Nếu máy chấm nhận thua, bạn cần kết thúc chương trình để nhận Kết quả đúng.
Nếu bạn nhận thua, bạn cần in ra hai số ~-1~ và kết thúc chương trình.
Sau mỗi lần in dữ liệu, bạn cần flush dữ liệu để đảm bảo tương tác với máy chấm thành công.
Sample
| Chương trình | Máy chấm | Giải thích |
|---|---|---|
first |
Bạn muốn đi trước. | |
1 1 |
Bạn đánh ~X~ vào ô ~(1, 1)~. | |
2 2 |
Máy chấm đánh ~O~ vào ô ~(2, 2)~. | |
1 2 |
Bạn đánh ~X~ vào ô ~(1, 2)~. | |
2 3 |
Máy chấm đánh ~O~ vào ô ~(2, 3)~. | |
1 3 |
Bạn đánh ~X~ vào ô ~(1, 3)~. | |
-1 -1 |
Máy chấm đã thua, và bạn cần kết thúc chương trình. |
Bình luận