Mofk Cup Round 1 - TREASURE

Xem dạng PDF

Gửi bài giải


Điểm: 1,20 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho một bảng ~n \times m~ (~n, m~ lẻ) được lát bởi các viên gạch ~2 \times 1~ nằm ngang hoặc dọc, trừ đúng 1 ô. Dưới một số ô có chứa kho báu. MofK được phép thực hiện 1 trong 2 thao tác sau:

- Đẩy một trong những viên gạch ở cạnh ô trống vào ô trống. MofK không được phép thay đổi hướng của viên gạch. Thao tác này tốn 1 giây.

- Lấy kho báu nằm dưới ô trống (nếu có). Thao tác này tốn 0 giây.

Hỏi MofK có thể lấy được nhiều nhất bao nhiêu kho báu, và thời gian ngắn nhất để MofK lấy được những kho báu đó là bao lâu?

Input

- Dòng đầu tiên gồm hai số nguyên dương lẻ ~n, m~ ~(n * m \leq 5\cdot 10^5)~

- ~n~ dòng tiếp theo là xâu gồm ~m~ kí tự trong bảng chữ cái tiếng Anh in thường tượng trưng cho bảng viên gạch, một viên gạch là hai kí tự giống nhau kề nhau. Bộ test đảm bảo với mỗi một ô chỉ có đúng một ô kề cạnh có kí tự giống nhau (trừ ô trống).

- ~n~ dòng tiếp theo là xâu nhị phân gồm ~m~ kí tự cho biết vị trí các kho báu, các ô ~1~ là có kho báu và ngược lại.

Output

- In ra hai số nguyên thoả mãn yêu cầu đề bài

Scoring

  • ~20\%~ số test có ~n = 1~.

  • ~80\%~ số test còn lại không có ràng buộc gì thêm.

Với mỗi test, bài làm của thí sinh sẽ được 50% số điểm nếu tìm được số lượng kho báu lớn nhất tìm được.

Sample Input 1

3 5
aa.zz
lmall
lmaoo
10100
00100
00101

Sample Output 1

4 4

Sample Input 2

3 3
llo
o.o
oll
111
101
111

Sample Output 2

0 0

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 2
    quanto  đã bình luận lúc 28, Tháng 4, 2023, 7:33

    mọi người cho e hỏi "trừ đúng 1 ô" ở dòng 1 có nghĩa là gì với ạ??? mong mọi người đừng downvote e


    • -1
      QuangBui  đã bình luận lúc 29, Tháng 4, 2023, 12:23

      Vì ~n~ và ~m~ lẻ nên tổng các số ô là lẻ, viên gạch có ~2~ ô nên khi lát xong theo cách nào đó thì sẽ luôn bị chừa ~1~ ô.