Alx09

Untitled

May 5th, 2020
332
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int a[100][100], n, m;
  4. int dx[] = { -1, -1, 0, 1, 1, 1, 0, -1 };
  5. int dy[] = { 0, 1, 1, 1, 0, -1, -1, -1 };
  6. int startX, startY;
  7.  
  8. void Read_matrix() {
  9. FILE *f;
  10. int i, j;
  11. f = fopen("in.txt", "r");
  12. fscanf(f, "%d%d%d%d", &n, &m, &startX, &startY);
  13. for (i = 0; i < n; i++)
  14. for (j = 0; j < m; j++)
  15. fscanf(f, "%d", &a[i][j]);
  16. fclose(f);
  17. }
  18. void Print() {
  19. int i, j;
  20. for (i = 0; i < n; i++) {
  21. for (j = 0; j < m; j++)
  22. printf("%d ", a[i][j]);
  23. printf("\n");
  24. }
  25. }
  26. int Valid(int i, int j) {
  27. if (i < 0 || j < 0)
  28. return 0;
  29. if (i >= n || j >= m)
  30. return 0;
  31. return 1;
  32. }
  33. void FILL(int i, int j) { // FILL/umplere recursiva
  34. int k;
  35. if (Valid(i, j) && !a[i][j]) {
  36. a[i][j] = 1; //umple
  37. for (k = 0; k < 8; k++)
  38. FILL(i + dx[k], j + dy[k]);
  39. }
  40. }
  41.  
  42. int main() {
  43. Read_matrix();
  44. startX--;
  45. startY--;
  46. FILL(startX, startY);
  47. Print();
  48. system("pause");
  49. return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment