COCI 2019/2020 - Contest 6 - Skandi

Xem dạng PDF

Gửi bài giải

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

Người đăng:
Nguồn bài:
COCI 2019-2020 / Contest 6
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Dragica là đội trưởng của một đội bowling bán chuyên ở địa phương. Cô ấy cũng là một người đầu bếp tâm huyết và có thể được coi là một trong những người giải ô chữ tốt nhất ở Croatia. Một ô chữ sẽ là một bảng ~N \times M~ ô vuông, trong đó ~N~ là số hàng và ~M~ là số cột. Một số ô vuông được để trống (và người chơi cần phải điền chữ vào ô vuông đó bằng cách giải), và một số ô vuông được tô màu. Những ô vuông được tô màu chứa tối đa ~2~ câu hỏi - một câu nằm ngang và một ô nằm dọc. Đáp án cho hai câu hỏi được viết ở các ô vuông trống đến khi đến cạnh hoặc đến một ô được tô màu.

Chẳng hạn, xét hình dưới đây:

Các ô được đánh số là các ô bắt đầu ít nhất một câu hỏi. Như các bạn thấy, có những ô có hai câu hỏi (chẳng hạn như ~10~ và ~12~), một câu hỏi (chẳng hạn như ~8~, ~13~), hoặc không câu nào (những câu không được đánh số)

Đáp án cho câu hỏi nằm ngang ở ô chứa số ~14~ sẽ là những ô nằm ở bên phải ô chứa số ~14~ đến trước ô chứa số ~15~, cụ thể là những ô có chữ ~X~ màu xanh lá cây

Đáp án cho câu hỏi nằm ngang ở ô chứa sô ~10~ sẽ là những ô nằm ở bên phải ô chứa số ~10~ đến hết hàng (chạm cạnh), cụ thể là những ô có chữ ~X~ màu vàng

Đáp án cho câu hỏi nằm dọc ở ô chứa số ~17~ sẽ là những ô nằm phía dưới ô chứa số ~17~ đến trước ô chứa số ~23~, cụ thể là những ô có chữ ~X~ màu xanh nước biển

Đáp án cho câu hỏi nằm dọc ở ô chứa số ~21~ sẽ là những ô nằm phía dưới ô chứa số ~21~ đến hết cột (chạm cạnh), cụ thể là những ô có chữ ~X~ màu đỏ

(Lưu ý: Các số ở đây chỉ nhằm mục đích giải thích, trong input thực tế không có những số này)

Một ô được tô màu chứa một câu hỏi theo chiều ngang nếu ô vuông bên phải của nó tồn tại và trống. Tương tự, một ô được tô màu chứa một câu hỏi theo chiều dọc nếu ô vuông bên dưới của nó tồn tại và trống. Dragica biết hết tất cả các câu trả lời cho các câu hỏi, nhưng vì lười nên cô ấy muốn đọc và trả lời càng ít câu hỏi càng tốt. Hãy giúp cô ấy.

Input

Dòng đầu tiên chứa 2 sô nguyên ~N~ và ~M~ ~(2 \le N, M \le 500)~ Mỗi dòng trong N dòng tiếp theo chứa M kí tự 0 hoặc 1

  • 0 là ô trống
  • 1 là ô được tô màu Input đảm bảo dòng/cột đầu tiên chứa toàn kí tự 1, và có ít nhất một kí tự 0

Output

Dòng đầu tiên chứa ~X~ là số câu hỏi ít nhất

Mỗi dòng trong ~X~ dòng tiếp theo chứa một câu hỏi cần được trả lời.

Câu hỏi có dạng ~R~ ~C~ ~direction~

  • ~R~ là chỉ số hàng
  • ~C~ là chỉ số cột
  • ~direction~ là hướng của câu hỏi: DESNO (bên phải trong tiếng Croatia) nếu Dragica nên trả lời câu hỏi theo chiều ngang, hoặc DOLJE (bên dưới trong tiếng Croatian) nếu Dragica nên trả lời câu hỏi theo chiều dọc

Sample Input 1

4 5
11111
10000
10000
10000

Sample Output 1

3
2 1 DESNO
3 1 DESNO
4 1 DESNO

Sample Input 2

6 4
1111
1011
1000
1011
1010
1000

Sample Output 2

4
1 2 DOLJE
4 4 DOLJE
5 3 DOLJE
3 1 DESNO

Sample Input 3

9 8
11111111
10000000
10001000
10010001
11100001
10100110
10001000
10100001
10010001

Sample Output 3

14
5 2 DOLJE
5 8 DOLJE
8 3 DOLJE
2 1 DESNO
3 1 DESNO
3 5 DESNO
4 1 DESNO
4 4 DESNO
5 3 DESNO
6 3 DESNO
7 1 DESNO
7 5 DESNO
8 3 DESNO
9 4 DESNO

Nếu có nhiều đáp án, bạn có thể in ra đáp án bất kì

Subtask

  • ~30\%~ số test có nhiều nhất 9 ô vuông có số 1
  • ~35\%~ số test tiếp theo có ~N \le 500~ và ~M \le 10~
  • ~35\%~ số test còn lại không có điều kiện gì thêm

Note

Nếu bạn chỉ in ra đáp số mà không in ra được solution, bạn sẽ được 50% số điểm


Bình luận

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


Không có bình luận tại thời điểm này.