trang chủ / đề bài / perimeter19

Chu vi băng

Đề bài

Mô tả

Bác John bắt đầu kinh doanh kem. Bác chế tạo một cái máy sản xuất ra các khối kem, nhưng tiếc là hình dạng của chúng khá tùy tiện.

Sản phẩm của máy được mô tả bằng một lưới N×N: ký tự '.' là chỗ trống, ký tự '#' là một ô kem kích thước 1×1.

Máy có thể tạo ra nhiều khối kem rời nhau. Một khối kem là một nhóm các ô kem liên thông: từ một ô bất kỳ trong khối có thể đi tới mọi ô khác của khối bằng cách liên tiếp bước sang ô kem kề cạnh theo bốn hướng trên, dưới, trái, phải. Hai ô chỉ chạm nhau ở góc thì không thuộc cùng một khối.

Bác John muốn biết diện tích và chu vi của khối kem có diện tích lớn nhất. Diện tích của một khối là số ô '#' thuộc khối đó. Nếu có nhiều khối cùng đạt diện tích lớn nhất, bác muốn biết chu vi nhỏ nhất trong số đó.

Chu vi của một khối là tổng số cạnh của các ô trong khối mà cạnh đó không tiếp giáp với một ô khác cùng khối, tính cả những cạnh nằm trên biên của lưới. Một khối có thể có "lỗ" ở giữa (chỗ trống bị kem bao quanh); khi đó đường viền quanh lỗ cũng được tính vào chu vi. Các khối cũng có thể nằm lồng bên trong khối khác, và khi đó chúng vẫn được coi là các khối riêng biệt.

Dữ liệu vào

  • Dòng đầu chứa số nguyên N.
  • N dòng tiếp theo, mỗi dòng gồm N ký tự '.' hoặc '#' mô tả lưới.

Dữ liệu ra

Một dòng chứa hai số nguyên cách nhau bởi dấu cách: diện tích của khối kem lớn nhất và chu vi của nó.

Ràng buộc

  • 1≤N≤1000
  • Lưới có ít nhất một ô '#'.

Ví dụ

Input Output Giải thích
6
##....
....#.
.#..#.
.#####
...###
....##
13 22 Lưới có hai khối. Khối nhỏ ở góc trên trái có diện tích 2 và chu vi 6. Khối còn lại có diện tích 13 và chu vi 22, đó là khối lớn nhất.
5
#####
#...#
#.#.#
#...#
#####
16 32 Vành ngoài là một khối diện tích 16, bên trong nó có một khối riêng biệt chỉ gồm một ô. Vành ngoài có 16 ô, tổng cộng 64 cạnh, trong đó 16 cặp cạnh bị dùng chung giữa hai ô kề nhau nên bị trừ đi 32, còn lại chu vi 32: gồm 20 cạnh viền ngoài và 12 cạnh viền quanh lỗ.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0