Submission #691527


Source Code Expand

/*
   迷路問題における幅優先探索
   */
#include<iostream>
#include<queue>

using namespace std;

const int MAX_M = 50;
const int MAX_N = 50;
const int INF = 10000000;

typedef pair<int, int> P;

char maze[MAX_N][MAX_M+1];
int N, M;
int sx, sy;
int gx, gy;

int d[MAX_N][MAX_M];

int dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1};

int bfs();
void solve();

int main(){

  cin>>N;
  cin>>M;
  cin>>sy;
  cin>>sx;
  cin>>gy;
  cin>>gx;
  sx--;
  sy--;
  gy--;
  gx--;
  for(int i = 0; i < N; i++){
    for(int j = 0; j < M; j++){
      cin>>maze[i][j];
    }
  }
  solve();
  return 0;
}

int bfs(){
  queue<P> que;
  for(int i = 0; i < N; i++)
    for(int j = 0; j < M; j++) d[i][j] = INF;
 
  que.push(P(sy, sx));
  d[sy][sx] = 0;

  while(que.size()){
    P p = que.front(); que.pop();
    if(p.first == gy && p.second == gx) break;

    for(int i = 0; i < 4; i++){
      int nx = p.first + dx[i], ny = p.second + dy[i];

      if(0 <= nx && nx < N && 0 <= ny && ny < M && maze[nx][ny] != '#' && d[nx][ny] == INF){
        que.push(P(nx, ny));
        d[nx][ny] = d[p.first][p.second] + 1;
      }
    }
  }
  return d[gy][gx];
}

void solve(){
  int res = bfs();
  cout<<res<<endl;
}

Submission Info

Submission Time
Task A - 幅優先探索
User hiroki6
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1273 Byte
Status AC
Exec Time 4 ms
Memory 256 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 3
AC × 25
Set Name Test Cases
Sample subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt
All subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt
Case Name Status Exec Time Memory
subtask0_sample01.txt AC 4 ms 256 KiB
subtask0_sample02.txt AC 4 ms 256 KiB
subtask0_sample03.txt AC 4 ms 256 KiB
subtask1_01.txt AC 4 ms 256 KiB
subtask1_02.txt AC 4 ms 256 KiB
subtask1_03.txt AC 4 ms 256 KiB
subtask1_04.txt AC 4 ms 256 KiB
subtask1_05.txt AC 4 ms 256 KiB
subtask1_06.txt AC 4 ms 256 KiB
subtask1_07.txt AC 4 ms 256 KiB
subtask1_08.txt AC 4 ms 256 KiB
subtask1_09.txt AC 4 ms 256 KiB
subtask1_10.txt AC 4 ms 256 KiB
subtask1_11.txt AC 4 ms 256 KiB
subtask1_12.txt AC 4 ms 256 KiB
subtask1_13.txt AC 4 ms 256 KiB
subtask1_14.txt AC 4 ms 256 KiB
subtask1_15.txt AC 4 ms 256 KiB
subtask1_16.txt AC 4 ms 256 KiB
subtask1_17.txt AC 4 ms 256 KiB
subtask1_18.txt AC 4 ms 256 KiB
subtask1_19.txt AC 4 ms 256 KiB
subtask1_20.txt AC 4 ms 256 KiB
subtask1_21.txt AC 4 ms 256 KiB
subtask1_22.txt AC 4 ms 256 KiB