This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <stdio.h>
#include <stdlib.h>
int n,m,i,j,tomato[1001][1001],day=0,tomatocnt=0,rec[1001][1001],empty;
void input(){
FILE *fin=fopen("input.txt","r");
fscanf(fin,"%d %d",&m,&n);
for(i=0;i<n;i++){
for(j=0;j<m;j++){
fscanf(fin,"%d",&tomato[i][j]);
if(tomato[i][j]==-1) empty++;
if(tomato[i][j]==1) tomatocnt++;
}
}
fclose(fin);
}
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][j]=(-1)*day-1;
}
if(tomato[i][j-1]==0 && j-1>=0){
tomatocnt++;
tomato[i][j-1]=1;
rec[i][j]=(-1)*day-1;
}
if(tomato[i+1][j]==0 && i+1<n){
tomatocnt++;
tomato[i+1][j]=1;
rec[i][j]=(-1)*day-1;
}
if(tomato[i][j+1]==0 && j+1<m){
tomatocnt++;
tomato[i][j+1]=1;
rec[i][j]=(-1)*day-1;
}
}
}
}
day++;
}
}
void output(){
FILE *fout=fopen("output.txt","w");
if(day==(n*m-empty+1)) fprintf(fout,"-1");
else fprintf(fout,"%d",day);
fclose(fout);
}
int main(void){
input();
process();
output();
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |