Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <queue>
- using namespace std;
- bool Map[1001][1001], n, m;
- queue < pair < int,int > > coada;
- void citire()
- {
- ifstream f("traversare.in");
- f >> n >> m;
- for (int i = 1 ; i <= n ; i++)
- for(int j = 1;j <= m; j++,f >> Map[i][j])
- if( i == 1 && Map[i][j] == 0) coada.push(make_pair(i,j)),Map[i][j] = 1;
- f.close();
- }
- bool ok(int i,int j)
- {
- if ( i < 1 || j < 1 || i > n || j > m) return false;
- if (Map[i][j] != 0) return false;
- return true;
- }
- void lee()
- { int di[] = { 1, 0, 0};
- int dj[] = { 0 , -1, 1};
- int i, j, i_urm, j_urm;
- while(!coada.empty())
- {
- i = coada.front().first;
- j = coada.front().second;
- coada.pop();
- for ( int dir = 0; dir <= 2; dir++)
- {
- i_urm = i + di[dir];
- j_urm = j + dj[dir];
- if(ok(i_urm,j_urm))
- {
- coada.push(make_pair(i_urm,j_urm));
- Map[i_urm][j_urm] = Map[i][j] + 1;
- }
- }
- }
- }
- int main()
- {
- int minim = 20000;
- for (int i = 1 ; i <= m ;i++)
- if(Map[n][i] < minim) minim = Map[n][i];
- ofstream g("traversare.out");
- g << minim;
- g.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement