>>99
> 36行目
そのとおり。valid_positionの条件が偽であるとき、continueする。
> 42行目
3項演算子 (条件式 ? 値1 : 値2) は、条件式が真なら値1、偽なら値2に評価される。
すなわち、
if(grid[i][j] == '.') dist[i][j] = MAX_X*MAX_Y;
else dist[i][j] = 0;
と同じ動作をする。