BOI 2011 - Bật đèn

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1500 (p) Thời gian: 3.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Casper đang thiết kế một mạch điện trên một tấm bảng hình chữ nhật gồm \(N\) hàng và \(M\) cột ô vuông. Mỗi ô chứa một miếng vuông có dây dẫn nối hai góc đối diện của nó.

Nguồn điện được nối với góc trên bên trái của bảng, còn bóng đèn được nối với góc dưới bên phải. Đèn chỉ sáng khi có một đường đi gồm các dây dẫn nối nguồn điện với bóng đèn. Để làm đèn sáng, có thể xoay một số miếng vuông, mỗi miếng \(90^\circ\) theo một trong hai chiều.

Hãy viết chương trình tìm số miếng vuông ít nhất cần xoay để làm đèn sáng.

Dữ liệu vào

Dòng đầu tiên chứa hai số nguyên \(N\)\(M\), là kích thước của bảng.

Mỗi dòng trong \(N\) dòng tiếp theo chứa \(M\) ký tự \ hoặc /, biểu diễn hướng của dây dẫn nối hai góc đối diện trên miếng vuông tương ứng.

Dữ liệu ra

In đúng một dòng. Nếu có thể làm đèn sáng, in một số nguyên duy nhất: số miếng vuông ít nhất cần xoay. Nếu không thể, in chuỗi NO SOLUTION.

Ràng buộc

  • \(1 \le N,M \le 500\).

Phân nhóm

  • Trong các bộ dữ liệu có tổng cộng 40 điểm, \(1 \le N \le 4\)\(1 \le M \le 5\).
  • 60 điểm còn lại không có ràng buộc bổ sung.

Ví dụ

Ví dụ 1

Input
3 5
\\/\\
\\///
/\\\\
Output
1
Giải thích

Dữ liệu ví dụ tương ứng với hình sau. Ban đầu đèn đang tắt. Nếu xoay bất kỳ một miếng vuông nào trong cột thứ hai tính từ bên phải một góc \(90^\circ\), nguồn điện và bóng đèn sẽ được nối với nhau, làm đèn sáng.

Tệp

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: