Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- ifstream fin("foto.in");
- ofstream fout("foto.out");
- struct foto
- {
- int l, c;
- };
- int F[102][102], N, M, i, j;
- int fill(int i, int j)
- {
- foto C[10010], X;
- int ic, sc, dir, l9, c9;
- int dl[] = {0, -1, 0, 1, 0};
- int dc[] = {0, 0, 1, 0, -1};
- int nr = 0;
- F[i][j] = 2; nr++;
- ic = 0; sc = 0;
- C[sc].l = i; C[sc].c = j;
- while (ic <= sc)
- {
- X = C[ic++];
- for (dir = 1; dir <= 4; dir++)
- {
- l9 = X.l + dl[dir];
- c9 = X.c + dc[dir];
- if (F[l9][c9] == 0)
- {
- F[l9][c9] = 2; nr++;
- sc++; C[sc].l = l9; C[sc].c = c9;
- }
- }
- }
- return nr;
- }
- void citire()
- {
- int i, j;
- fin >> N >> M;
- for (i = 1; i <= N; i++)
- for (j = 1; j <= M; j++)
- fin >> F[i][j];
- }
- void bordare()
- {
- int i;
- for (i = 0; i <= N+1; i++)
- F[i][0] = F[i][M+1] = 1;
- for (i = 0; i <= M+1; i++)
- F[0][i] = F[N+1][i] = 1;
- }
- int main()
- {
- int i, j, cate, cateMAX = 0;
- citire();
- bordare();
- for (i = 1; i <= N; i++)
- for (j = 1; j <= M; j++)
- if (F[i][j] == 0) //am gasit o zona luminoasa
- {
- cate = fill(i, j);
- if (cate>cateMAX)
- cateMAX = cate;
- }
- fout << cateMAX << '\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement