Advertisement
Guest User

soarece

a guest
Feb 25th, 2020
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.15 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <string>
  4. #define N 15
  5.  
  6. using namespace std;
  7.  
  8. struct Poz{
  9.     int ind, jnd;
  10. };
  11.  
  12. int mat[N][N];
  13. int n, m;
  14. Poz kez, veg;
  15. int sz;
  16.  
  17. Poz irany[4] = {
  18.         {-1, 0},
  19.         {0, 1},
  20.         {1, 0},
  21.         {0, -1}
  22. };
  23.  
  24. void be(){
  25.     cin>>n>>m;
  26.     for (int i = 0; i < n; ++i) {
  27.         for (int j = 0; j < m; ++j) {
  28.             cin>>mat[i][j];
  29.         }
  30.     }
  31.     cin>>kez.ind>>kez.jnd>>veg.ind>>veg.jnd;
  32.     kez.ind--;kez.jnd--;
  33.     veg.ind--;veg.jnd--;
  34.  
  35.     mat[kez.ind][kez.jnd] = 1;
  36. }
  37.  
  38. void back(int ind, int jnd){
  39.     if(ind == veg.ind and jnd == veg.jnd)
  40.         sz++;
  41.  
  42.     for (int i = 0; i < 4; ++i) {
  43.         int index = ind + irany[i].ind;
  44.         int jndex = jnd + irany[i].jnd;
  45.  
  46.         if(index < 0 or jndex < 0 or index >= n or jndex >= m)
  47.             continue;
  48.         else if(mat[index][jndex] == 0){
  49.             mat[ind][jnd] = 1;
  50.             back(index, jndex);
  51.             mat[ind][jnd] = 0;
  52.         }
  53.     }
  54. }
  55.  
  56. int main(){
  57.     freopen("file.in", "r", stdin);
  58.     //freopen("file.out", "w", stdout);
  59.     be();
  60.     back(kez.ind, kez.jnd);
  61.     cout<<sz;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement