Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- ifstream fin("date.in");
- ofstream fout("date.out");
- int n, m;
- int a[11][11];
- int dl[4]={-1,1,0,0};
- int dc[4]={0,0,-1,1};
- int s=0;
- int sol[100];
- int total_pasi = 0;
- void afiseaza()
- {
- for(int i=0; i<total_pasi; i++)
- {
- if (sol[i]==0) cout << "N ";
- if (sol[i]==1) cout << "S ";
- if (sol[i]==2) cout << "V ";
- if (sol[i]==3) cout << "E ";
- }
- cout << endl;
- cout << endl;
- }
- void afism(){
- for(int i=0; i<=n+1; i++)
- {
- for(int j=0; j<=m+1; j++)
- cout << a[i][j] << " ";
- cout << endl;
- }
- cout << endl;
- }
- void bkt(int x, int y)
- {
- //afism();
- if (s==0) afiseaza();
- else
- {
- for(int i=0; i<4; i++)
- {
- if (a[x+dl[i]][y+dc[i]]==0) continue;
- sol[total_pasi-s-1]=i;
- a[x+dl[i]][y+dc[i]]--;
- s--;
- bkt(x+dl[i], y+dc[i]);
- s++;
- a[x+dl[i]][y+dc[i]]++;
- }
- }
- }
- int main()
- {
- fin >> n >> m; // max 9
- for(int i=1; i<=n; i++)
- for(int j=1; j<=m; j++)
- {
- fin >> a[i][j];
- s+=a[i][j];
- }
- total_pasi = s;
- for(int i=1; i<=n; i++)
- for(int j=1; j<=m; j++)
- if (a[i][j]) {
- //cout <<"Incerc de la: "<< i << " " << j << endl;
- a[i][j]--;
- s--;
- bkt(i,j);
- s++;
- a[i][j]++;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement