Alx09

Untitled

May 4th, 2020
320
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int n, m, a[100][100];
  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, contor = 0;
  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. if (i == startX && j == startY)
  23. printf("P ");
  24. else
  25. printf("%d ", a[i][j]);
  26. printf("\n");
  27. }
  28. printf("--------------------------------------------\n\n");
  29. }
  30. void Search(int i, int j) {
  31. int k;
  32. if (i == 0 || i == n - 1 || j == 0 || j == m - 1) {
  33. Print();
  34. }
  35. else
  36. for (k = 0; k < 8; k++) {
  37. if (a[i + dx[k]][j + dy[k]] == 0) {
  38. a[i + dx[k]][j + dy[k]] = a[i][j] + 1;
  39. Search(i + dx[k], j + dy[k]);
  40. a[i + dx[k]][j + dy[k]] = 0;
  41. }
  42. }
  43. }
  44.  
  45. int main() {
  46. Read_matrix();
  47. startX--;
  48. startY--;
  49. Search(startX, startY);
  50. return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment