Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void timer(int** Map)
- {
- vector<pair<int, int> > wave;
- vector<pair<int, int> > oldWave;
- oldWave.push_back(pair<int, int>(1, 1));
- int nstep = 0;
- map[1][1] = nstep;
- const int dx[] = { 0, 1, 0, -1 };
- const int dy[] = { -1, 0, 1, 0 };
- while (oldWave.size() > 0)
- {
- ++nstep;
- wave.clear();
- for (vector<pair<int, int> >::iterator i = oldWave.begin(); i != oldWave.end(); ++i)
- {
- for (int d = 0; d < 4; ++d)
- {
- int nx = i->first + dx[d];
- int ny = i->second + dy[d];
- if (map[nx][ny] == -1)
- {
- wave.push_back(pair<int, int>(nx, ny));
- map[nx][ny] = nstep;
- if (nx == N - 2 && ny == N - 2)
- goto done;
- for (int b = 0; b < 10000; ++b)
- {
- }
- }
- }
- }
- oldWave = wave;
- }
- done:
- int x = N - 2;
- int y = N - 2;
- wave.clear();
- wave.push_back(pair<int, int>(x, y));
- while (map[x][y] != 0)
- {
- for (int d = 0; d < 4; ++d)
- {
- int nx = x + dx[d];
- int ny = y + dy[d];
- if (map[x][y] - 1 == map[nx][ny])
- {
- x = nx;
- y = ny;
- wave.push_back(pair<int, int>(x, y));
- break;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement