fork download
  1. #include<cstdio>
  2. int virus[100][100];
  3. int change[100][100];
  4. int n,m;
  5. bool care(){
  6. for(int i=0;i<n;i++){
  7. for(int j=0;j<m;j++){
  8. if(virus[i][j]==1) return false;
  9. }
  10. }
  11. return true;
  12. }
  13. int main(){
  14. scanf("%d%d",&n,&m);
  15. for(int i=0;i<n;i++){
  16. for(int j=0;j<m;j++){
  17. scanf("%d",&virus[i][j]);
  18. }
  19. }
  20. int cnt=0;
  21. while(!care()){
  22. cnt++;
  23. for(int i=1;i<n-1;i++){
  24. for(int j=1;j<m-1;j++){
  25. if(virus[i][j]==1&&(virus[i-1][j]+virus[i+1][j]+virus[i][j-1]+virus[i][j+1])<=2){
  26. change[i][j]=1;
  27. // printf("nice");
  28. }
  29. }
  30. }
  31. for(int i=1;i<n-1;i++){
  32. for(int j=1;j<m-1;j++){
  33. virus[i][j]-=change[i][j];
  34. change[i][j]=0;
  35. }
  36. }
  37. for(int i=0;i<n;i++){
  38. for(int j=0;j<m;j++){
  39. // printf("%d",virus[i][j]);
  40. }
  41. // printf("\n");
  42. }
  43. // printf("\n");
  44. }
  45. printf("%d",cnt);
  46. }
Success #stdin #stdout 0s 3420KB
stdin
8 9 
0 0 0 0 0 0 0 0 0 
0 0 0 1 1 0 1 1 0 
0 0 0 1 1 0 1 1 0 
0 1 1 1 1 1 1 1 0 
0 1 1 1 1 1 1 1 0 
0 1 1 1 0 1 1 0 0 
0 1 1 0 0 1 1 0 0 
0 0 0 0 0 0 0 0 0 
stdout
5