Submission #11446357
Source Code Expand
#include <stdio.h>
#include <iostream>
#include <math.h>
#include <string>
#include <vector>
#include <queue>
using namespace std;
#define ll long long
#define pb push_back
int cnt, h, w, xy[110][110]={-1}, sy, sx, gy, gx;
int dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1};
pair<int,int> p;
queue<pair<int,int> > q;
int bfs(int x,int y, vector<vector<char> > c){
int xy[h][w];
// チェック済みかどうかの配列
for(int i =0; i < h; i++){
for(int j =0; j < w; j++){
xy[i][j]=-1;
}
}
q.push(pair<int,int>(x, y));
xy[x][y]=0;
while(q.size()){
p=q.front(); //先頭の要素をqに入れる
q.pop(); // 先頭の要素を取り出す
for(int i = 0; i < 4; i ++){ // 1ノードで辿れるものを順番に見ていくことにより幅優先
int nx = p.first + dx[i];
int ny = p.second + dy[i];
if(0 <= nx && nx <h && 0 <= ny && ny < w && c[nx][ny] != '#' && xy[nx][ny]==-1){
q.push(pair<int, int>(nx, ny));
xy[nx][ny] = xy[p.first][p.second]+1;
}
}
}
// for(int i =0; i<h; i++){
// for(int j =0; j < w; j++){
// cout << xy[i][j] << " ";
// }
// cout << endl;
// }
return xy[gy-1][gx-1];
}
int32_t main()
{
cin >> h >> w >> sy >> sx >> gy >> gx;
string s;
vector<vector<char> > c(h, vector<char>(w));
for(int i =0; i<h; i++){
cin >> s;
for(int j =0; j < w; j++){
c[i][j] = s.at(j);
}
}
int ans = bfs(sx-1, sy-1, c);
cout << ans << endl;
}
Submission Info
Submission Time |
|
Task |
A - 幅優先探索 |
User |
Yanami |
Language |
C++14 (GCC 5.4.1) |
Score |
100 |
Code Size |
1506 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 |