Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- int n,m;
- char a[51][51]; /// a=ferma
- const char liber='.',copac='+',robot='*';
- void afism()
- {
- ofstream g("ferma1.out");
- for(int i=1;i<=n;++i)
- {
- for(int j=1;j<=m;++j)
- g<<a[i][j];
- g<<'\n';
- }
- g.close();
- }
- void deplasareDin(int ir,int jr)
- {
- if(ir-2>=1) /// sus
- if((a[ir-2][jr-1]!=copac)&&(a[ir-2][jr]!=copac)&&(a[ir-2][jr+1]!=copac))
- if((a[ir-2][jr-1]==liber)||(a[ir-2][jr]==liber)||(a[ir-2][jr+1]==liber))
- {
- a[ir-2][jr-1]=a[ir-2][jr]=a[ir-2][jr+1]=robot;
- deplasareDin(ir-1,jr);
- }
- if(ir+2<=n) /// jos
- if((a[ir+2][jr-1]!=copac)&&(a[ir+2][jr]!=copac)&&(a[ir+2][jr+1]!=copac))
- if((a[ir+2][jr-1]==liber)||(a[ir+2][jr]==liber)||(a[ir+2][jr+1]==liber))
- {
- a[ir+2][jr-1]=a[ir+2][jr]=a[ir+2][jr+1]=robot;
- deplasareDin(ir+1,jr);
- }
- if(jr-2>=1) /// stanga
- if((a[ir-1][jr-2]!=copac)&&(a[ir][jr-2]!=copac)&&(a[ir+1][jr-2]!=copac))
- if((a[ir-1][jr-2]==liber)||(a[ir][jr-2]==liber)||(a[ir+1][jr-2]==liber))
- {
- a[ir-1][jr-2]=a[ir][jr-2]=a[ir+1][jr-2]=robot;
- deplasareDin(ir,jr-1);
- }
- if(jr+2<=m) /// dreapta
- if((a[ir-1][jr+2]!=copac)&&(a[ir][jr+2]!=copac)&&(a[ir+1][jr+2]!=copac))
- if((a[ir-1][jr+2]==liber)||(a[ir][jr+2]==liber)||(a[ir+1][jr+2]==liber))
- {
- a[ir-1][jr+2]=a[ir][jr+2]=a[ir+1][jr+2]=robot;
- deplasareDin(ir,jr+1);
- }
- }
- int main()
- {
- int ic=0,jc=0;
- ifstream f("ferma1.in");
- f>>n>>m;
- for(int i=1;i<=n;++i)
- for(int j=1;j<=m;++j)
- f>>a[i][j];
- for(int i=1;i<=n;++i)
- for(int j=1;j<=m;++j)
- if(a[i][j]=='R')
- {ic=i; jc=j; break;};
- for(int i=-1;i<=1;++i)
- for(int j=-1;j<=1;++j)
- a[ic+i][jc+j]=robot;
- deplasareDin(ic,jc);
- afism();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement