Advertisement
a53

ferma1

a53
Dec 16th, 2017
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. #include <fstream>
  2. using namespace std;
  3. int n,m;
  4. char a[51][51]; /// a=ferma
  5. const char liber='.',copac='+',robot='*';
  6.  
  7. void afism()
  8. {
  9. ofstream g("ferma1.out");
  10. for(int i=1;i<=n;++i)
  11. {
  12. for(int j=1;j<=m;++j)
  13. g<<a[i][j];
  14. g<<'\n';
  15. }
  16. g.close();
  17. }
  18.  
  19. void deplasareDin(int ir,int jr)
  20. {
  21. if(ir-2>=1) /// sus
  22. if((a[ir-2][jr-1]!=copac)&&(a[ir-2][jr]!=copac)&&(a[ir-2][jr+1]!=copac))
  23. if((a[ir-2][jr-1]==liber)||(a[ir-2][jr]==liber)||(a[ir-2][jr+1]==liber))
  24. {
  25. a[ir-2][jr-1]=a[ir-2][jr]=a[ir-2][jr+1]=robot;
  26. deplasareDin(ir-1,jr);
  27. }
  28. if(ir+2<=n) /// jos
  29. if((a[ir+2][jr-1]!=copac)&&(a[ir+2][jr]!=copac)&&(a[ir+2][jr+1]!=copac))
  30. if((a[ir+2][jr-1]==liber)||(a[ir+2][jr]==liber)||(a[ir+2][jr+1]==liber))
  31. {
  32. a[ir+2][jr-1]=a[ir+2][jr]=a[ir+2][jr+1]=robot;
  33. deplasareDin(ir+1,jr);
  34. }
  35. if(jr-2>=1) /// stanga
  36. if((a[ir-1][jr-2]!=copac)&&(a[ir][jr-2]!=copac)&&(a[ir+1][jr-2]!=copac))
  37. if((a[ir-1][jr-2]==liber)||(a[ir][jr-2]==liber)||(a[ir+1][jr-2]==liber))
  38. {
  39. a[ir-1][jr-2]=a[ir][jr-2]=a[ir+1][jr-2]=robot;
  40. deplasareDin(ir,jr-1);
  41. }
  42. if(jr+2<=m) /// dreapta
  43. if((a[ir-1][jr+2]!=copac)&&(a[ir][jr+2]!=copac)&&(a[ir+1][jr+2]!=copac))
  44. if((a[ir-1][jr+2]==liber)||(a[ir][jr+2]==liber)||(a[ir+1][jr+2]==liber))
  45. {
  46. a[ir-1][jr+2]=a[ir][jr+2]=a[ir+1][jr+2]=robot;
  47. deplasareDin(ir,jr+1);
  48. }
  49. }
  50.  
  51. int main()
  52. {
  53. int ic=0,jc=0;
  54. ifstream f("ferma1.in");
  55. f>>n>>m;
  56. for(int i=1;i<=n;++i)
  57. for(int j=1;j<=m;++j)
  58. f>>a[i][j];
  59. for(int i=1;i<=n;++i)
  60. for(int j=1;j<=m;++j)
  61. if(a[i][j]=='R')
  62. {ic=i; jc=j; break;};
  63. for(int i=-1;i<=1;++i)
  64. for(int j=-1;j<=1;++j)
  65. a[ic+i][jc+j]=robot;
  66. deplasareDin(ic,jc);
  67. afism();
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement