hiho week 66 register

Ended

Participants:488

Verdict:Accepted
Score:100 / 100
Submitted:2015-10-04 17:40:22

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <string>
#include <vector>
#include <utility>
#include <queue>
const int MAX = 99999999;
using namespace std;
void bfs(vector<string>&input, int si, int sj,vector<vector<int>>& dis)
{
    queue<pair<int, int>> myqueue;
    int m = input.size(), n = input[0].size();
    vector<vector<int>> vis(m, vector<int>(n, 0));
    int curi = si, curj = sj;
    int step = 0;
    while(1)
    {
        if(curi - 1 >= 0 && input[curi - 1][curj] == '.' && vis[curi - 1][curj] == 0)
        {
            myqueue.push(make_pair(curi - 1, curj));
            dis[curi - 1][curj] = step + 1;
            vis[curi - 1][curj] = 1;
        }
        if(curi + 1 < m && input[curi + 1][curj] == '.' && vis[curi + 1][curj] == 0)
        {
            myqueue.push(make_pair(curi + 1, curj));
            dis[curi + 1][curj] = step + 1;
            vis[curi + 1][curj] = 1;
        }
        if(curj - 1 >= 0 && input[curi][curj - 1] == '.' && vis[curi][curj - 1] == 0)
        {
            myqueue.push(make_pair(curi, curj - 1));
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX