fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int check[2502][2502]={0};
  5.  
  6. int main ()
  7. {
  8. int R, S;
  9. cin>>R>>S;
  10. char HT[51][51]; //HT == Hoi truong :v
  11. int STT[51][51];
  12. int stt = 1;
  13. for (int i=1; i<=R; i++)
  14. for (int j=1; j<=S; j++)
  15. {
  16. cin>>HT[i][j];
  17. STT[i][j] = stt;
  18. stt++;
  19. }
  20.  
  21. int x_xq[] = {-1, -1, +0, +1, +1, +1, +0, -1};
  22. int y_xq[] = {+0, +1, +1, +1, +0, -1, -1, -1};
  23.  
  24. int gt_M = -1, i_M = 0, j_M = 0;
  25. for (int i=1; i<=R; i++)
  26. {
  27. for (int j=1; j<=S; j++)
  28. {
  29. if (HT[i][j]=='.')
  30. {
  31. int d = 0;
  32. for (int t=0; t<8; t++)
  33. {
  34. int x_m = x_xq[t]+j;
  35. int y_m = y_xq[t]+i;
  36. if (x_m>=1 && x_m<=S && y_m>=1 && y_m<=R && HT[y_m][x_m]=='o')
  37. d++;
  38. }
  39. if (d>gt_M)
  40. {
  41. gt_M = d;
  42. i_M = i;
  43. j_M = j;
  44. }
  45. }
  46. }
  47. }
  48. if (gt_M!=-1)
  49. HT[i_M][j_M] = 'o';
  50.  
  51.  
  52. int count = 0;
  53. for (int i=1; i<=R; i++)
  54. {
  55. for (int j=1; j<=S; j++)
  56. {
  57. if (HT[i][j]=='o')
  58. {
  59. for (int t=0; t<8; t++)
  60. {
  61. int x_m = x_xq[t]+j;
  62. int y_m = y_xq[t]+i;
  63. if (x_m>=1 && x_m<=S && y_m>=1 && y_m<=R && HT[y_m][x_m]=='o')
  64. {
  65. if (check[STT[i][j]][STT[y_m][x_m]]==0)
  66. {
  67. count++;
  68. check[STT[i][j]][STT[y_m][x_m]]=1;
  69. check[STT[y_m][x_m]][STT[i][j]]=1;
  70. }
  71. }
  72. }
  73. }
  74. }
  75. }
  76. cout<<count;
  77. return 0;
  78. }
Success #stdin #stdout 0s 4392KB
stdin
2 3
..o
o..
stdout
2