Submission #1706952
Source Code Expand
#include <iostream>
#include <cmath>
#include <vector>
#include <string>
#include <map>
#include <algorithm>
#include <tuple>
#include <set>
#include <stack>
#include <queue>
#include <deque>
#define REP(i, n) for(LL i = 0;i < n;i++)
#define REPR(i, n) for(LL i = n;i >= 0;i--)
#define FOR(i, m, n) for(LL i = m;i < n;i++)
#define FORR(i, m, n) for(LL i = m;i >= n;i--)
#define SORT(v, n) sort(v, v+n);
#define VSORT(v) sort(v.begin(), v.end());
#define pb(a) push_back(a)
#define all(x) (x).begin(),(x).end()
#define INF 999999999
#define MOD 1000000007
using namespace std;
typedef long long LL;
typedef pair<int, int> P;
typedef pair<LL, LL> LP;
typedef pair<int, P> PP;
typedef pair<LL, LP> LPP;
int dy[]={0, 0, 1, -1};
int dx[]={1, -1, 0, 0};
/***************using variables ***************/
int r, c;
int sy, sx, gy, gx;
char maze[55][55];
int dis[55][55];
int cnt = 1;
/**********************************************/
void search(){
queue<P> que;
dis[sx-1][sy-1] = 0;
REP(i, 4){
que.emplace(sx-1 + dx[i], sy-1 + dy[i]);
}
while(1){
int num = que.size();
REP(i, num){
int searchx = que.front().first;
int searchy = que.front().second;
que.pop();
if(maze[searchx][searchy] != '#' && dis[searchx][searchy] > cnt){
dis[searchx][searchy] = cnt;
REP(j, 4){
que.emplace(searchx + dx[j], searchy + dy[j]);
}
}
}
cnt++;
if(dis[gx-1][gy-1] != INF) break;
}
}
void printmap(){
REP(i, r){
REP(j, c){
if(maze[j][i] == '#'){
cout << maze[j][i];
}else{
if(dis[j][i] == INF){
cout << '*';
}else{
cout << dis[j][i];
}
}
}
cout << endl;
}
}
int main(){
cin >> r >> c;
cin >> sy >> sx >> gy >> gx;
REP(i, r){
REP(j, c){
cin >> maze[j][i];
dis[j][i] = INF;
}
}
search();
// printmap();
cout << dis[gx-1][gy-1] << endl;
}
Submission Info
Submission Time |
|
Task |
C - 幅優先探索 |
User |
wheson |
Language |
C++14 (GCC 5.4.1) |
Score |
100 |
Code Size |
2252 Byte |
Status |
AC |
Exec Time |
2 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 |
2 ms |
256 KB |
subtask1_01.txt |
AC |
1 ms |
256 KB |
subtask1_02.txt |
AC |
1 ms |
256 KB |
subtask1_03.txt |
AC |
2 ms |
256 KB |
subtask1_04.txt |
AC |
2 ms |
256 KB |
subtask1_05.txt |
AC |
1 ms |
256 KB |
subtask1_06.txt |
AC |
2 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 |
2 ms |
256 KB |
subtask1_11.txt |
AC |
2 ms |
256 KB |
subtask1_12.txt |
AC |
1 ms |
256 KB |
subtask1_13.txt |
AC |
2 ms |
256 KB |
subtask1_14.txt |
AC |
1 ms |
256 KB |
subtask1_15.txt |
AC |
2 ms |
256 KB |
subtask1_16.txt |
AC |
2 ms |
256 KB |
subtask1_17.txt |
AC |
2 ms |
256 KB |
subtask1_18.txt |
AC |
2 ms |
256 KB |
subtask1_19.txt |
AC |
1 ms |
256 KB |
subtask1_20.txt |
AC |
1 ms |
256 KB |
subtask1_21.txt |
AC |
2 ms |
256 KB |
subtask1_22.txt |
AC |
2 ms |
256 KB |