a53

amongus

a53
Feb 22nd, 2022 (edited)
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. short int n,m,p,A[102][102],ntcs,npsca; /// ntcs = numar total cabine sigure; npsca = numar portale situate in cabine accesibile
  4. short int di[8]={-1, 0,1,0,-1,-1,-1,1}, /// directia i (N, V(E), S, V, N-V, N-E, S-V, S-E)
  5. dj[8]={ 0,-1,0,1,-1, 1,-1,1}; /// directia j
  6.  
  7. void Fill(short int i,short int j) /// Functia de umplere cu 3
  8. {
  9. if(A[i][j]==2)
  10. ++npsca;
  11. if(A[i][j]!=1&&A[i][j]!=3)
  12. {
  13. A[i][j]=3;
  14. if(i>1) Fill(i-1,j); /// N
  15. if(j>1) Fill(i,j-1); /// V
  16. if(i<n) Fill(i+1,j); /// S
  17. if(j<m) Fill(i,j+1); /// E
  18. if(i>1&&j>1) Fill(i-1,j-1); /// N-V
  19. if(i>1&&j<m) Fill(i-1,j+1); /// N-E
  20. if(i<n&&j>1) Fill(i+1,j-1); /// S-V
  21. if(i<n&&j<m) Fill(i+1,j+1); /// S-E
  22. }
  23. }
  24.  
  25. int main()
  26. {
  27. ifstream fin("amongus.in");
  28. fin>>p;
  29. fin>>n>>m;
  30. for(int i=1;i<=n;++i)
  31. for(int j=1;j<=m;++j)
  32. fin>>A[i][j];
  33. ofstream fout("amongus.out");
  34. if(A[1][1]==1)
  35. {
  36. fout<<"misiune esuata";
  37. return 0;
  38. }
  39. if(p==1)
  40. {
  41. for(short int i=1;i<=n;++i)
  42. for(short int j=1;j<=m;++j)
  43. if(A[i][j]==0)
  44. ++ntcs;
  45. fout<<ntcs;
  46. return 0;
  47. }
  48. Fill(1,1);
  49. if(p==2)
  50. for(short int i=1;i<=n;++i,fout<<'\n')
  51. for(short int j=1;j<=m;++j)
  52. fout<<A[i][j]<<' ';
  53. else
  54. fout<<npsca;
  55. return 0;
  56. }
Add Comment
Please, Sign In to add comment