제출 #5917

#제출 시각아이디문제언어결과실행 시간메모리
5917gs12037토마토 (KOI13_tomato)C++98
16 / 16
124 ms5356 KiB
#include <stdio.h>
#include <deque>
 
using namespace std;
 
int a[1010][1010];
int x[5]={0,1,0,-1,0};
deque<int> v1,v2;
 
int main()
{
    int m,n,i,j,t=-1;
    scanf("%d%d",&m,&n);
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        {
            scanf("%d",&a[i][j]);
            if(a[i][j]==1)
            {
                v1.push_back(i);
                v2.push_back(j);
            }
            else
                a[i][j]--;
        }
    while(v1.size()!=0)
    {
        int s=v1.size();
        for(i=0;i<s;i++)
        {
            for(int k=0;k<=3;k++)
            {
                if(a[v1.front()+x[k]][v2.front()+x[k+1]]==-1)
                {
                    a[v1.front()+x[k]][v2.front()+x[k+1]]++;
                    v1.push_back(v1.front()+x[k]);
                    v2.push_back(v2.front()+x[k+1]);
                }
            }
            v1.pop_front();
            v2.pop_front();
        }
        t++;    
    }
    for(i=1;i<=n;i++){
        for(j=1;j<=m;j++){
            if(a[i][j]==-1)
                break;
        }
        if (a[i][j]==-1) break;
    }
    if(i==n+1 && j==m+1)
        printf("%d",t);
    else
        printf("-1");
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...