Advertisement
a53

foto

a53
Nov 17th, 2019
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. #include <fstream>
  2.  
  3. using namespace std;
  4.  
  5. ifstream fin("foto.in");
  6. ofstream fout("foto.out");
  7.  
  8. struct foto
  9. {
  10. int l, c;
  11. };
  12.  
  13. int F[102][102], N, M, i, j;
  14.  
  15. int fill(int i, int j)
  16. {
  17. foto C[10010], X;
  18. int ic, sc, dir, l9, c9;
  19. int dl[] = {0, -1, 0, 1, 0};
  20. int dc[] = {0, 0, 1, 0, -1};
  21. int nr = 0;
  22. F[i][j] = 2; nr++;
  23. ic = 0; sc = 0;
  24. C[sc].l = i; C[sc].c = j;
  25. while (ic <= sc)
  26. {
  27. X = C[ic++];
  28. for (dir = 1; dir <= 4; dir++)
  29. {
  30. l9 = X.l + dl[dir];
  31. c9 = X.c + dc[dir];
  32. if (F[l9][c9] == 0)
  33. {
  34. F[l9][c9] = 2; nr++;
  35. sc++; C[sc].l = l9; C[sc].c = c9;
  36. }
  37. }
  38. }
  39. return nr;
  40. }
  41.  
  42. void citire()
  43. {
  44. int i, j;
  45. fin >> N >> M;
  46. for (i = 1; i <= N; i++)
  47. for (j = 1; j <= M; j++)
  48. fin >> F[i][j];
  49. }
  50.  
  51. void bordare()
  52. {
  53. int i;
  54. for (i = 0; i <= N+1; i++)
  55. F[i][0] = F[i][M+1] = 1;
  56. for (i = 0; i <= M+1; i++)
  57. F[0][i] = F[N+1][i] = 1;
  58. }
  59.  
  60. int main()
  61. {
  62. int i, j, cate, cateMAX = 0;
  63. citire();
  64. bordare();
  65. for (i = 1; i <= N; i++)
  66. for (j = 1; j <= M; j++)
  67. if (F[i][j] == 0) //am gasit o zona luminoasa
  68. {
  69. cate = fill(i, j);
  70. if (cate>cateMAX)
  71. cateMAX = cate;
  72. }
  73. fout << cateMAX << '\n';
  74. return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement