记录编号 22015 评测结果 WWWWWWWWWW
题目名称 剪切矩形 最终得分 0
用户昵称 Gravatarkaaala 是否通过 未通过
代码语言 C++ 运行时间 0.375 s
提交时间 2010-11-16 16:12:22 内存使用 1.22 MiB
显示代码纯文本
#include<fstream>

using namespace std;

char s;
int i,j,n,m,z,a[1001],b[1001],x;
bool f1[1002][1002];
long mx;

int main()
{
	ifstream fin("rectangle.in");
	ofstream fout("rectangle.out");
	fin>>n>>m;
	for(i=1;i<=n;i++)
		for(j=1;j<=m;j++)
		{
			fin>>s;
			if(s=='.')
				f1[i][j]=true;
			else
				f1[i][j]=false;
		}
		z=0;
		x=0;
	for(i=1;i<=n;i++)
		for(j=1;j<=m;j++)
		{
			if(f1[i][j])
				z++;
			else
			{
				a[i]+=(1+z)*z/2;
				z=0;
			}
			if(j==m)
			{
				a[i]+=(1+z)*z/2;
				z=0;
			}
			if((f1[i][j]&&f1[i+1][j])||(f1[i][j]&&f1[i-1][j]))
				x++;
		}
		z=0;
	for(j=1;j<=m;j++)
		for(i=1;i<=n;i++)
		{
			if(f1[i][j])
				z++;
			else
			{
				b[j]+=(1+z)*z/2;
				z=0;
			}
			if(i==n)
			{
				b[j]+=(1+z)*z/2;
				z=0;
			}
		}
	for(i=1;i<=n;i++)
		mx+=a[i];
	for(i=1;i<=m;i++)
		mx+=b[i];
	mx-=x;
	fout<<mx;
	fin.close();
	fout.close();
	return 0;
}