记录编号 |
22015 |
评测结果 |
WWWWWWWWWW |
题目名称 |
剪切矩形 |
最终得分 |
0 |
用户昵称 |
kaaala |
是否通过 |
未通过 |
代码语言 |
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;
}