cpp-291Đọc toàn bộ đề miễn phí

Đếm số ô liên thông với ô xuất phát

Trên một bàn cờ nhỏ, ta chỉ được đi qua các ô trống và chỉ đi được lên, xuống, sang trái,

C++Cơ bản15 phút

Tiến độ của tôi ở bài này

Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.

Đang tải điểm của bạn…

Kiến thức và chủ đề

graphgridflood-fillentry-ramp

Kiến thức tiên quyết: cpp-basics, arrays.

Nội dung đề bài

Mô tả bài toán

Trên một bàn cờ nhỏ, ta chỉ được đi qua các ô trống và chỉ đi được lên, xuống, sang trái, sang phải. Câu hỏi đầu tiên của mọi bài toán loang là: từ ô xuất phát, ta chạm được tới bao nhiêu ô trống?

Yêu cầu

Cho lưới gồm n hàng và m cột, mỗi ô là . (ô trống) hoặc # (vật cản). Hãy đếm số ô trống đi tới được từ ô góc trên bên trái (1, 1) khi chỉ được di chuyển giữa hai ô trống kề nhau theo bốn hướng. Nếu ô xuất phát là vật cản thì kết quả là 0.

Quy ước nộp bài

Nộp chương trình solution.cpp đọc dữ liệu từ stdin và in kết quả ra stdout. Chỉ cần in đúng một số nguyên, không in thêm chữ nào khác.

Input

  • Dòng đầu: hai số nguyên n, m (1 <= n, m <= 50).
  • n dòng tiếp theo: xâu độ dài m gồm ký tự . và #.

Output

Một số nguyên là số ô trống đi tới được từ ô xuất phát.

Ràng buộc

  • Không được đi chéo và không được đi xuyên qua vật cản.
  • Thời gian cho mỗi bộ dữ liệu là 1 giây.

Ví dụ 1

Input

3 3
...
.#.
...

Output

8

Ví dụ 2

Input

3 3
..#
.#.
#..

Output

3

Giải thích

Với lưới

Từ (1, 1) đi được tới cả 8 ô trống (tất cả trừ ô giữa là vật cản).

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.

Góp ý & báo lỗi bài tập

Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.

Nhóm Zalo