Submission #1163545


Source Code Expand

#include <cstdio>
#include <queue>

using namespace std;

#define REP(i,n)   for(int i=0; i<(int)(n); i++)
#define FOR(i,b,e) for(int i=(b); i<=(int)(e); i++)

const int INF = 100000000;
const int D[4][2] = {{-1, 0}, {0, -1}, {0, 1}, {1, 0}};
const int R_MAX = 50;
const int C_MAX = 50;

typedef pair<int, int> P;

int R, C;
int sy, sx;
int gy, gx;
char c[R_MAX][C_MAX + 1];

int d[R_MAX][C_MAX];

int bfs() {
  queue<P> que;
  que.push(P(sy, sx));
  fill(d[0], d[R], INF);
  d[sy][sx] = 0;
  while (!que.empty()) {
    P p = que.front(); que.pop();
    int y = p.first;
    int x = p.second;
    if (y == gy && x == gx) break;
    REP(k, 4) {
      int y2 = y + D[k][0];
      int x2 = x + D[k][1];
      if (y2 < 0 || y2 >= R || x2 < 0 || x2 >= C) continue;
      if (c[y2][x2] == '#' || d[y2][x2] < INF) continue;
      que.push(P(y2, x2));
      d[y2][x2] = d[y][x] + 1;
    }
  }
  return d[gy][gx];
}

void solve() {
  sy--; sx--;
  gy--; gx--;
  printf("%d\n", bfs());
}

void input() {
  scanf("%d%d", &R, &C);
  scanf("%d%d", &sy, &sx);
  scanf("%d%d", &gy, &gx);
  REP(i, R) scanf("%s", c[i]);
}

int main() {
  input();
  solve();
  return 0;
}

Submission Info

Submission Time
Task C - 幅優先探索
User nejiko96
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1156 Byte
Status AC
Exec Time 1 ms
Memory 256 KB

Compile Error

./Main.cpp: In function ‘void input()’:
./Main.cpp:52:24: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%d", &R, &C);
                        ^
./Main.cpp:53:26: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%d", &sy, &sx);
                          ^
./Main.cpp:54:26: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%d", &gy, &gx);
                          ^
./Main.cpp:55:30: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   REP(i, R) scanf("%s", c[i]);
                              ^

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 1 ms 256 KB
subtask0_sample02.txt AC 1 ms 256 KB
subtask0_sample03.txt AC 1 ms 256 KB
subtask1_01.txt AC 1 ms 256 KB
subtask1_02.txt AC 1 ms 256 KB
subtask1_03.txt AC 1 ms 256 KB
subtask1_04.txt AC 1 ms 256 KB
subtask1_05.txt AC 1 ms 256 KB
subtask1_06.txt AC 1 ms 256 KB
subtask1_07.txt AC 1 ms 256 KB
subtask1_08.txt AC 1 ms 256 KB
subtask1_09.txt AC 1 ms 256 KB
subtask1_10.txt AC 1 ms 256 KB
subtask1_11.txt AC 1 ms 256 KB
subtask1_12.txt AC 1 ms 256 KB
subtask1_13.txt AC 1 ms 256 KB
subtask1_14.txt AC 1 ms 256 KB
subtask1_15.txt AC 1 ms 256 KB
subtask1_16.txt AC 1 ms 256 KB
subtask1_17.txt AC 1 ms 256 KB
subtask1_18.txt AC 1 ms 256 KB
subtask1_19.txt AC 1 ms 256 KB
subtask1_20.txt AC 1 ms 256 KB
subtask1_21.txt AC 1 ms 256 KB
subtask1_22.txt AC 1 ms 256 KB