记录编号 |
186254 |
评测结果 |
AAAAAAAAAAA |
题目名称 |
[USACO Oct09] 乳草的入侵 |
最终得分 |
100 |
用户昵称 |
aaaaa |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.006 s |
提交时间 |
2015-09-12 11:31:51 |
内存使用 |
0.31 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
int xx[9]={0,1,1,0,-1,-1,-1,0,1},yy[9]={0,0,1,1,1,0,-1,-1,-1};
int main()
{
freopen("milkweed.in","r",stdin);
freopen("milkweed.out","w",stdout);
int x,y,sum=0,flag,ans=0;
int dui[10001][3]={0},tou=1,wei=1;
char map[101][101],ch;
scanf("%d%d%d%d",&x,&y,&dui[1][2],&dui[1][1]);
getchar();
dui[1][1]=y-dui[1][1]+1;
for (int i=1;i<=y;i++)
{
for (int j=1;j<=x;j++)
{
scanf("%c",&map[i][j]);
if (map[i][j]=='.') sum++;
}
getchar();
}
map[dui[1][1]][dui[1][2]]='M';
sum--;
while(wei>=tou&&sum>0)
{
flag=wei;
for (int i=tou;i<=flag;i++)
{
for (int j=1;j<=8;j++)
if ((dui[i][1]+xx[j])<=y&&(dui[i][1]+xx[j])>0&&(dui[i][2]+yy[j])<=x&&(dui[i][2]+yy[j])>0)
if (map[dui[i][1]+xx[j]][dui[i][2]+yy[j]]=='.')
{
map[dui[i][1]+xx[j]][dui[i][2]+yy[j]]='M';
sum--;
wei++;
dui[wei][1]=dui[i][1]+xx[j];
dui[wei][2]=dui[i][2]+yy[j];
}
}
tou=flag+1;
ans++;
}
if (sum==0)
printf("%d",ans);
else
printf("-1");
return 0;
}