JOI 2020 - Legendary Dango Maker
Xem PDFĐây là bài chỉ nộp dữ liệu đầu ra.
Bạn là thợ làm bánh gạo dango chuyên nghiệp. Hiện tại, bạn đang xiên các viên dango vào que.
Các viên dango nằm trong một bảng hình chữ nhật có \(R\) hàng và \(C\) cột, mỗi ô chứa một viên. Màu của một viên là hồng (P), trắng (W) hoặc xanh lá (G). Bạn chọn ba viên liên tiếp theo chiều dọc, chiều ngang hoặc một trong hai đường chéo: từ trên trái xuống dưới phải, hoặc từ trên phải xuống dưới trái. Sau đó, lấy lần lượt ba viên từ đầu này đến đầu kia và xiên chúng vào que theo đúng thứ tự đó.
Ví dụ, nếu chọn ba viên liên tiếp theo chiều dọc, có thể lấy theo thứ tự trên-giữa-dưới hoặc dưới-giữa-trên; không được lấy theo thứ tự giữa-dưới-trên hoặc dưới-trên-giữa. Mỗi viên dango không được nằm trên nhiều hơn một que.
Một que dango được gọi là đẹp nếu thứ tự màu trên que là hồng-trắng-xanh lá hoặc xanh lá-trắng-hồng. Bạn muốn làm được nhiều que đẹp nhất có thể.
Bạn có thể làm được bao nhiêu que dango đẹp?
Dữ liệu vào
Bài có sáu bộ dữ liệu đầu vào. Mỗi bộ có định dạng:
R C
D_1
...
D_R
Với \(1 \le i \le R\), \(D_i\) là xâu dài \(C\) chỉ gồm các ký tự P, W, G. Ký tự thứ \(j\) của \(D_i\) (\(1 \le j \le C\)) là màu viên dango ở hàng thứ \(i\) từ trên xuống, cột thứ \(j\) từ trái sang.
Dữ liệu ra
Với mỗi bộ dữ liệu đầu vào, nộp dữ liệu đầu ra theo định dạng:
S_1
...
S_R
Mỗi \(S_i\) (\(1 \le i \le R\)) là xâu dài \(C\) chỉ gồm các ký tự P, W, G, |, -, \, /. Ký tự thứ \(j\) mô tả cách xiên viên dango tại hàng \(i\), cột \(j\):
|: tạo một que đẹp từ viên tại ô này, ô kề ngay phía trên và ô kề ngay phía dưới.-: tạo một que đẹp từ viên tại ô này, ô kề ngay bên trái và ô kề ngay bên phải.\: tạo một que đẹp từ viên tại ô này, ô chéo trên trái và ô chéo dưới phải./: tạo một que đẹp từ viên tại ô này, ô chéo trên phải và ô chéo dưới trái.- Trong các trường hợp còn lại, ghi
P,WhoặcGđúng theo màu ban đầu của viên tại ô đó, tức là giữ nguyên ký tự tương ứng của \(D_i\).
Các ký hiệu que được đặt ở ô giữa của ba viên. Các ô ở hai đầu que vẫn giữ ký tự màu ban đầu.
Ràng buộc
- \(3 \le R \le 500\).
- \(3 \le C \le 500\).
- Mỗi \(D_i\) (\(1 \le i \le R\)) có độ dài \(C\) và chỉ gồm
P,W,G.
Phân nhóm
Mỗi bộ dữ liệu có bốn tham số: \(S\) là điểm tối đa của bộ đó, cùng ba ngưỡng \(X,Y,Z\).
| Bộ dữ liệu | \(S\) | \(X\) | \(Y\) | \(Z\) |
|---|---|---|---|---|
| 01 | 15 | 44000 | 47000 | 47220 |
| 02 | 15 | 39000 | 41700 | 41980 |
| 03 | 15 | 45000 | 51000 | 51390 |
| 04 | 15 | 18000 | 19000 | 19120 |
| 05 | 20 | 43000 | 48200 | 48620 |
| 06 | 20 | 44000 | 46000 | 46500 |
Với mỗi bộ dữ liệu, gọi \(N\) là số que dango đẹp tạo được theo đầu ra của bạn. Điểm của bộ dữ liệu đó bằng:
Điểm của bài là tổng điểm của sáu bộ dữ liệu, sau đó làm tròn tổng đến số nguyên gần nhất.
Tuy nhiên, điểm của một bộ dữ liệu bằng \(0\) nếu đầu ra không hợp lệ: không thể tạo các que đẹp theo các ký hiệu |, -, \, / trong đầu ra (bao gồm việc dùng một viên trên nhiều que), các ký tự P, W, G không khớp với dữ liệu vào, hoặc định dạng đầu ra sai.
Ví dụ
Ví dụ 1
Input
3 4
PWGP
WGPW
GWPG
Output
P-GP
WGP|
G-PG
Giải thích
Trong ví dụ này, bạn tạo được ba que dango đẹp. Lưu ý rằng thứ tự màu W G P không tạo thành một que đẹp.
Ví dụ 2
Input
3 4
PWWP
WWWW
PGGP
Output
PWWP
W\/W
PGGP
Giải thích
Trong ví dụ này, bạn tạo được hai que dango đẹp.
Công cụ trực quan
Công cụ trực quan cho phép xem tổng quan dữ liệu đầu vào hoặc đầu ra dưới dạng hình ảnh. Mở tệp HTML bằng trình duyệt rồi chọn hoặc kéo thả tệp dữ liệu vào.
Công cụ không kiểm tra đầy đủ tính đúng đắn của định dạng tệp. Nó có thể hoạt động không đúng nếu định dạng dữ liệu sai hoặc \(R,C\) vượt quá các ràng buộc.
Nguồn
JOI 2019/2020, Trại huấn luyện mùa xuân, ngày thi 4. Đề gốc của Ủy ban Olympic Tin học Nhật Bản, được cung cấp theo giấy phép CC BY-SA 4.0. Bản tiếng Việt được dịch từ đề tiếng Anh chính thức.
Kỳ thi:
- JOI 2020 - Trại huấn luyện mùa xuân - Ngày 4 (23 Tháng ba, 2020)
Bình luận