Submission #11588831
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
inline int ctoi(char c) { if(c < '0' || '9' < c) throw invalid_argument("ctoi error"); return c - '0'; }
#define rep(i, n) for(int i = 0; i < (int)(n); i++)
#define REP(i, k, n) for(int i = (int)(k); i < (int)(n); i++)
#define all(x) (x).begin(), (x).end()
template <typename T>
inline T gcd(T x, T y){
if (x <= 0 || y <= 0) throw invalid_argument("gcd error: x <= 0 or y <= 0");
if(x < y) swap(x, y);
T r = x % y;
while(r != 0){
x = y;
y = r;
r = x % y;
}
return y;
}
template <typename T>
inline T lcm(T x, T y){
if (x <= 0 || y <= 0) throw invalid_argument("lcm error: x <= 0 or y <= 0");
return x * y / gcd(x, y);
}
int h, w;
int sy, sx;
int gy, gx;
vector<vector<bool>> walk;
vector<vector<int>> step;
queue<pair<int, int>> q;
void push_bfs(int x, int y, int s){
if(x < 0 || y < 0 || w <= x || h <= y) return;
if(!walk[y][x] || step[y][x] != -1) return;
q.push(make_pair(x, y));
step[y][x] = s + 1;
}
int main(){
cin >> h >> w;
cin >> sy >> sx;
cin >> gy >> gx;
sy--;
sx--;
gy--;
gx--;
rep(i, h){
vector<bool> vw;
vector<int> vs;
rep(j, w){
char c;
cin >> c;
if(c == '.'){
vw.push_back(true);
}
else{
vw.push_back(false);
}
vs.push_back(-1);
}
walk.push_back(vw);
step.push_back(vs);
}
q.push(make_pair(sx, sy));
step[sy][sx] = 0;
while(!q.empty()){
pair<int, int> p = q.front();
int x = p.first;
int y = p.second;
q.pop();
int s = step[y][x];
push_bfs(x - 1, y, s);
push_bfs(x + 1, y, s);
push_bfs(x, y - 1, s);
push_bfs(x, y + 1, s);
}
/*
for(auto i : step){
for(auto j : i){
if(j == -1) cout << j << " ";
else cout << " " << j << " ";
}
cout << endl;
}
*/
cout << step[gy][gx] << endl;
return 0;
}
Submission Info
Submission Time |
|
Task |
A - 幅優先探索 |
User |
daiya06 |
Language |
C++14 (GCC 5.4.1) |
Score |
100 |
Code Size |
1896 Byte |
Status |
AC |
Exec Time |
1 ms |
Memory |
256 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
100 / 100 |
Status |
|
|
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 |