説明:
長さと幅の両方が L で、L*L のスロットがある正方形のペトリ皿があります。スロットには、細菌が含まれているもの、抗生物質が含まれているもの、きれいなものがあります。すべての細菌は個別に繁殖し、抗生物質を含む細菌を除いて、1 つの細菌が 1 日のうちに 4 つの地域すべてで繁殖します。皿全体をいっぱいにするのに何日かかるかを調べますか?
入力フォーマット:
行 1: 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)
実装の何が問題になっていますか? よろしくお願いします!