Advertisement
PedalaVasile

Untitled

Oct 17th, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.32 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <queue>
  4. #define MAX 105
  5. using namespace std;
  6. ifstream fin("iesire.in");
  7. ofstream fout("iesire.out");
  8.  
  9. int a[MAX][MAX];
  10. int viz[MAX][MAX];
  11. int di[4]= {-1,0,1,0};
  12. int dj[4]= {0,1,0,-1};
  13. queue<pair<int, int> > q;
  14. queue<pair<int, int> > q2;
  15.  
  16. void gard(int n)
  17. {
  18.     for(int i=0; i<=n+1; i++)
  19.     {
  20.         a[0][i]=-1;
  21.         a[n+1][i]=-1;
  22.         viz[0][i]=-1;
  23.         viz[n+1][i]=-1;
  24.     }
  25.     for(int j=0; j<=n+1; j++)
  26.     {
  27.         a[j][0]=-1;
  28.         a[n+1][j]=-1;
  29.         viz[j][0]=-1;
  30.         viz[j][n+1]=-1;
  31.     }
  32.     n++;
  33. }
  34.  
  35. bool valid(int n,int i, int j)
  36. {
  37.  
  38. }
  39.  
  40. bool LEE(int i, int j)
  41. {
  42.     int nexti=0, nextj=0;
  43.     q.push({i,j});
  44.     while(!q.empty())
  45.     {
  46.         i=q.front().first;
  47.         j=q.front().second;
  48.         q.pop();
  49.         for(int k=0; k<4; k++)
  50.         {
  51.             nexti=i+di[k];
  52.             nextj=j+dj[k];
  53.             if(a[nexti][nextj]==0 && !viz[nexti][nextj])
  54.             {
  55.                 viz[nexti][nextj]=4;
  56.                 viz[q2.front().first][q2.front().second]=5;
  57.                 q.push({nexti,nextj});
  58.             }
  59.         }
  60.     }
  61. }
  62.  
  63. int main()
  64. {
  65.     int n,m,x,y,nexti,nextj;
  66.     fin>>n>>m;
  67.     for(int i=1; i<=n; i++)
  68.     {
  69.         for(int j=1; j<=n; j++)
  70.         {
  71.             fin>>a[i][j];
  72.         }
  73.     }
  74.     gard(n);
  75.     for(int i=1; i<=m; i++)
  76.     {
  77.         fin>>x>>y;
  78.         q2.push({x,y});
  79.     }
  80.     for(int i=1; i<=n; i++)
  81.     {
  82.         for (int j=1; j<=n; j++)
  83.         {
  84.             for(int k=0; k<4; k++)
  85.             {
  86.                 nexti=di[k]+i;
  87.                 nextj=dj[k]+j;
  88.                 while(!q2.empty())
  89.                 {
  90.                     if(LEE(q2.front().first,q2.front().second)==true)
  91.                     {
  92.                         if(viz[i][j]==5)
  93.                         {
  94.                             fout<<"da\n";
  95.                         }
  96.                     }
  97.                     else
  98.                     {
  99.                         fout<< "nu\n";
  100.                     }
  101.                     q2.pop();
  102.                 }
  103.             }
  104.         }
  105.     }
  106.     for(int i=1; i<=n; i++)
  107.     {
  108.         for(int j=1; j<=n; j++)
  109.         {
  110.             fout<<viz[i][j]<<" ";
  111.         }
  112.         fout<<endl;
  113.     }
  114.     fin.close();
  115.     fout.close();
  116.     return 0;
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement