USACO 2016 - Fort Moo

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: 1800 (p) Thời gian: 4.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Bessie đang xây một pháo đài cùng cô bạn Elsie. Giống như mọi pháo đài tốt, nó cần bắt đầu bằng một bộ khung chắc chắn. Bessie muốn dựng một bộ khung có dạng đường viền hình chữ nhật rộng một mét, rồi xây pháo đài lên trên đó.

Bessie đã chọn sẵn địa điểm xây pháo đài: một mảnh đất kích thước \(N\) mét nhân \(M\) mét (\(1\le N,M\le200\)). Đáng tiếc, địa điểm này có một số vùng đầm lầy không thể dùng để đỡ bộ khung. Hãy giúp Bessie xác định diện tích lớn nhất mà pháo đài có thể bao phủ (diện tích hình chữ nhật được bộ khung nâng đỡ), sao cho bộ khung không nằm trên bất kỳ vùng đầm lầy nào.

Dữ liệu vào

Dòng đầu tiên chứa hai số nguyên \(N\)\(M\).

\(N\) dòng tiếp theo, mỗi dòng chứa \(M\) ký tự, tạo thành một lưới mô tả địa điểm. Ký tự . biểu thị cỏ bình thường, còn X biểu thị một ô đầm lầy.

Dữ liệu ra

In một số nguyên biểu thị diện tích lớn nhất mà pháo đài của Bessie có thể bao phủ.

Ví dụ

Ví dụ 1

Input
5 6
......
..X..X
X..X..
......
..X...
Output
16
Giải thích

Trong ví dụ này, vị trí đặt bộ khung tối ưu được đánh dấu bằng các ký tự f dưới đây:

.ffff.
.fX.fX
Xf.Xf.
.ffff.
..X...

Nguồn

USACO 2016 January Contest, Platinum - Fort Moo: https://usaco.org/index.php?page=viewproblem2&cpid=600

Tác giả: Nathan Pinsker.

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: