CF1600J Robot Factory

题目描述

你收到了来自 Bubble bot 的数据。你知道你的任务是建造工厂设施,但在开始之前,你需要知道工厂有多大以及有多少个房间。当你查看数据时,你发现你得到了建筑的尺寸,该建筑为矩形,尺寸为 $N \times M$。 接下来的 $N$ 行中,每行有 $M$ 个数字。这些数字代表工厂的地砖,每个数字的取值范围为 $0$ 到 $15$。每个数字都应以二进制形式查看。因为通过每个数字,你可以知道该地砖在哪些边上有墙。例如,数字 $10$ 的二进制形式为 $1010$,这意味着它北侧有墙,东侧没有墙,南侧有墙,西侧没有墙。顺序为北、东、南、西。 保证建筑的边缘总是有墙。输入数据保证是正确的。 你的任务是输出所有房间的面积,并按从大到小的顺序排列。

输入格式

第一行包含两个整数,分别为 $N$ 和 $M$,表示建筑的尺寸: $n$($1 \leq n \leq 10^3$) $m$($1 \leq m \leq 10^3$) 接下来的 $N$ 行,每行有 $M$ 个数字,表示建筑的每个地砖。

输出格式

处理完数据后,输出一行,按从大到小的顺序输出所有房间的面积。

说明/提示

由 ChatGPT 4.1 翻译