描述:
有一个长宽均为L的方形培养皿,里面有L*L的槽。有些插槽含有细菌,有些含有抗生素,有些是干净的。每个细菌都会单独繁殖,一天一个细菌会在所有四个社区繁殖,除了那些使用抗生素的社区。找出把整道菜填满需要多少天?
输入格式:
第 1 行:一个整数 第 2 行 - L+1 :每行 L 个整数,值 0、1、2,分别表示没有细菌、有细菌、有抗生素。
输出格式:
整数 m:细菌会在培养皿的每个槽中填满多少天(有抗生素的除外)
样本输入
3
2 0 0
0 1 0
0 0 0
样本输出
2
数据范围
1<=L<=100,给定的数据最终可以填满盘子。
我的代码在这里
#include<iostream>
using namespace std;
int L,i,j=0;
bool flag=false;
int m=0;
int cell[100][100]={3};
int main()
{
cin>>L;
for (i=1;i<=L;i++)
for (j=1;j<=L;j++)
cin>>cell[i][j];
while (!flag){
flag=true;
for (i=1;i<=L;i++)
for (j=1;j<=L;j++)
{
if (cell[i][j]==1){
if (cell[i-1][j]==0){
cell[i-1][j]=1;
flag=false;}
if (cell[i+1][j]==0){
cell[i+1][j]=1;
flag=false;}
if (cell[i][j-1]==0){
cell[i][j-1]=1;
flag=false;}
if (cell[i][j+1]==0){
cell[i][j+1]=1;
flag=false;}
}
if (cell[i][j]==0) flag=false;
}
m=m+1;
}
m=m-1;
cout<<m;
return 0;
}
但是在线法官说:
Judging... PROB=1003 LANG=C++
Wrong Answer (Time: 0ms, Memory: 4796kb)
Accepted (Time: 0ms, Memory: 4832kb)
Wrong Answer (Time: 0ms, Memory: 4852kb)
Wrong Answer (Time: 0ms, Memory: 4868kb)
Wrong Answer (Time: 0ms, Memory: 4944kb)
Wrong Answer (Time: 0ms, Memory: 5024kb)
Wrong Answer (Time: 0ms, Memory: 5100kb)
Wrong Answer (Time: 0ms, Memory: 5188kb)
Wrong Answer (Time: 0ms, Memory: 5180kb)
Wrong Answer (Time: 10ms, Memory: 5192kb)
我的实施有什么问题?提前非常感谢!