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>
using namespace std;
int main()
{
   FILE *inputs =   fopen("input.txt","r");
   FILE *outputs = fopen("output.txt","w");
   int M = 2,N = 2;
    int Riped = 0;
    int notRiped = 0;
   fscanf(inputs,"%d %d",&M,&N);
   int tomato[1000][1000];
    int Temp_tomato[1000][1000];
    for (int i = 0 ; i < N; i++){
        for (int j = 0 ; j < M; j++){
tomato[i][j] = 0;
        Temp_tomato[i][j] = 0;
        }
    }
    for (int i = 0 ; i < N; i++){
        for (int j = 0 ; j < M; j++){
            fscanf(inputs,"%d",&tomato[i][j]);
            if (tomato[i][j] == 1)Riped++;
            if (tomato[i][j] == -1)notRiped++;
        }
    }
    fclose(inputs);
    if (Riped == M * N - notRiped){
        fprintf(outputs,"%d",0);
        fclose(outputs);
        return 0;
    }
    if (Riped == 0){
        fprintf(outputs,"%d",-1);
        fclose(outputs);
         return 0;
    }
    int Delta = 0;
    int Date = -1;
    while (Riped != Delta){
            Delta = Riped;
            Date++;
        for (int i = 0; i < N; i++){
            for (int j = 0 ;j < M; j++){
                if (tomato[i][j] == 1){
                    if (i-1 >= 0)if(tomato[i-1][j] == 0)Temp_tomato[i-1][j] = 1;
                    if (i+1 < N )if( tomato[i+1][j] == 0)Temp_tomato[i+1][j] = 1;
                    if (j-1 >= 0 )if( tomato[i][j-1] == 0)Temp_tomato[i][j-1] = 1;
                    if (j+1 < M )if( tomato[i][j+1] == 0)Temp_tomato[i][j+1] = 1;
                }
            }
        }
            for (int i = 0; i < N; i++){
                for (int j = 0 ;j < M; j++){
                    if (Temp_tomato[i][j] == 1){
                        tomato[i][j] = 1;
                        Riped++;
                        Temp_tomato[i][j] = 0;
                    }
                }
            }
    }
    if (Riped == M * N - notRiped){
        fprintf(outputs,"%d",Date);
        fclose(outputs);
          return 0;
    }else{
        fprintf(outputs,"%d",-1);
        fclose(outputs);
          return 0;
    }
fclose(outputs);
    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... |