Advertisement
a53

iesire

a53
Oct 28th, 2017
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. #include <fstream>
  2. #define Nmax 102
  3. using namespace std;
  4. ifstream f("iesire.in");
  5. ofstream g("iesire.out");
  6. int n,m,a[Nmax][Nmax];
  7. const int dx[]={0, 0,1 ,-1},
  8. dy[]={1,-1,0 , 0};
  9.  
  10. bool fill(int i,int j,int valoare_veche,int valoare_noua)
  11. {
  12. a[i][j]=valoare_noua;
  13. if(i==1||i==n||j==1||j==n)
  14. return true;
  15. bool rez=false;
  16. for(int k=0;k<4;++k)
  17. if(a[i+dx[k]][j+dy[k]]==valoare_veche)
  18. rez=rez||fill(i+dx[k],j+dy[k],valoare_veche,valoare_noua);
  19. return rez;
  20. }
  21.  
  22. void fill2(int i,int j,int valoare_veche,int valoare_noua)
  23. {
  24. a[i][j]=valoare_noua;
  25. for(int k=0;k<4;++k)
  26. if(a[i+dx[k]][j+dy[k]]==valoare_veche)
  27. fill2(i+dx[k],j+dy[k],valoare_veche,valoare_noua);
  28. }
  29.  
  30. int main()
  31. {
  32. f>>n>>m;
  33. for(int i=1;i<=n;++i)
  34. for(int j=1;j<=n;++j)
  35. f>>a[i][j];
  36. ///bordare, chiar daca este inutila pentru aceasta problema
  37. for(int i=0;i<=n+1;++i)
  38. a[i][0]=a[i][n+1]=1;
  39. for(int j=0;j<=n+1;++j)
  40. a[0][j]=a[n+1][j]=1;
  41. for(int k=1;k<=m;++k)
  42. {
  43. int i,j;
  44. f>>i>>j;
  45. if(a[i][j]==1)
  46. g<<"nu\n";
  47. else
  48. {
  49. if(fill(i,j,0,2))
  50. g<<"da\n";
  51. else
  52. g<<"nu\n";
  53. fill2(i,j,2,0);
  54. }
  55. }
  56. g.close();
  57. f.close();
  58. return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement