Submission #14270

#TimeUsernameProblemLanguageResultExecution timeMemory
14270tjdals1865토마토 (KOI13_tomato)C++98
9.60 / 16
1000 ms8912 KiB
#include <stdio.h>
 
#include <stdlib.h>
 
int n,m,i,j,tomato[1001][1001],day=0,tomatocnt=0,rec[1001][1001],empty;
void input(){
   scanf("%d %d",&m,&n);
    for(i=0;i<n;i++){
        for(j=0;j<m;j++){
            scanf("%d",&tomato[i][j]);
            if(tomato[i][j]==-1) empty++;
            if(tomato[i][j]==1) tomatocnt++;
        }
    }
}
void process(){
    while(day<=(n*m-empty)){
        if(tomatocnt==n*m-empty) break;
        for(i=0;i<n;i++){
            for(j=0;j<m;j++){
                if(tomato[i][j]==1 && rec[i][j]!=(-1)*day-1){
                    if(tomato[i-1][j]==0 && i-1>=0){
                        tomatocnt++;
                        tomato[i-1][j]=1;
                        rec[i-1][j]=(-1)*day-1;
                    }
                     if(tomato[i][j-1]==0 && j-1>=0){
                        tomatocnt++;
                        tomato[i][j-1]=1;
                        rec[i][j-1]=(-1)*day-1;
                    }
                    if(tomato[i+1][j]==0 && i+1<n){
                        tomatocnt++;
                        tomato[i+1][j]=1;
                        rec[i+1][j]=(-1)*day-1;
                    }
                    if(tomato[i][j+1]==0 && j+1<m){
                        tomatocnt++;
                        tomato[i][j+1]=1;
                        rec[i][j+1]=(-1)*day-1;
                    }
                }
            }
        }
        day++;
    }
}
void output(){
    if(day==(n*m-empty+1)) printf("-1");
    else printf("%d",day);
}
int main(void){
    input();
    process();
    output();
    return 0;
}
#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...