#P15642. [ICPC 2022 Tehran R] Parking Party

[ICPC 2022 Tehran R] Parking Party

说明

Peyman 决定在他位于扎博尔(Zabol)的家中举办一场晚宴派对。他的房子有一个矩形的停车场,可以用一个 nnmm 列的网格来表示。一辆汽车可以停在这个网格的 n×mn\times m 个单元格之一。然而,一些单元格被不可移动的柱子占据,因此没有汽车可以停在其中或穿过它们。停车场的每一行或每一列在其两端都有一个入口。当一辆汽车通过一个入口进入停车场时,它只能沿着对应的行或列直线前进;当它到达对面的入口,或者下一个单元格被柱子或另一辆已停放的汽车占据时,它会停下来并停在一个网格单元格中。此外,如果某行或某列的第一个单元格已经被占据,汽车就不能从该行或该列的入口进入。

Peyman 希望最大化可以停在他停车场中的汽车数量。为了实现这一目标,他可以指示客人在到达时从哪个入口进入。你的任务是帮助 Peyman 完成这个任务。

输入格式

输入的第一行包含两个空格分隔的整数 nnmm1n,m10001 \leqslant n,m \leqslant 1000),分别表示停车场的行数和列数。接下来的 nn 行,每行包含一个长度为 mm 的字符串,由字符 ".\texttt{.}" 和 "o\texttt{o}" 组成。第 (i+1)(i + 1) 行的第 jj 个字符是 "o\texttt{o}",表示第 ii 行第 jj 列的单元格包含一根柱子;如果是 ".\texttt{.}",则表示该单元格为空。

输出格式

输出一个整数 kk,表示 Peyman 可以在他的停车场中停放的最大汽车数量。

3 3
.o.
o.o
.o.
4
3 4
oooo
....
...o
7

提示

翻译由 DeepSeek V3.2 完成