Submission #19532860
Source Code Expand
Copy
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char mp[505][505];
int book[505][505];
int dx[4] = {0, -1, 0, 1};
int dy[4] = {-1, 0, 1, 0};
int n, m, sx, sy, fx, fy, head = 1, tail = 2, midx, midy, ans,flag;
struct mm {
int x;
int y;
int bushu;
}queue[1000005];
int main () {
ios::sync_with_stdio(0);
cin >> n >> m;
for (register int i = 1; i <= n;i++) {
for (register int j = 1; j <= n;j++) {
cin >> mp[i][j];
if (mp[i][j] == 'S') {
sx = i;
sy = j;
}
if (mp[i][j] == 'G') {
fx = i;
fy = j;
}
if (mp[i][j]=='C') {
midx = i;
midy = j;
}
}
}
queue[head].x = sx;
queue[head].y = sy;
queue[head].bushu = 0;
book[sx][sy] = 1;
while (head<tail) {
flag=0;
for (int i = 0; i < 4;i++) {
int idx = queue[head].x + dx[i];
int idy = queue[head].y + dy[i];
if (idx>=1&&idx<=n&&idy>=0&&idy<=m&&book[idx][idy]==0&&mp[idx][idy]!='#') {
book[idx][idy] = 1;
queue[tail].x = idx;
queue[tail].y = idy;
queue[tail].bushu = queue[head].bushu + 1;
tail++;
if (idx==midx&&idy==midy) {
ans = queue[tail-1].bushu;
flag = 1;
break;
}
}
}
if (flag==1) {
break;
}
head++;
}
memset(queue, 0, sizeof(queue));
memset(book,0,sizeof(book));
if (flag==0) {
cout<<"-1"<<endl;
return 0;
}
flag=0;
head = 1;
tail = 2;
queue[head].x = midx;
queue[head].y = midy;
queue[head].bushu = ans;
while (head<tail){
flag=0;
for (int i = 0; i < 4;i++) {
int idx = queue[head].x + dx[i];
int idy = queue[head].y + dy[i];
if (idx>=1&&idx<=n&&idy>=0&&idy<=m&&book[idx][idy]==0&&mp[idx][idy]!='#') {
book[idx][idy] = 1;
queue[tail].x = idx;
queue[tail].y = idy;
queue[tail].bushu = queue[head].bushu + 1;
tail++;
if (idx==fx&&idy==fy) {
flag=1;
cout<<queue[tail-1].bushu<<endl;
return 0;
}
}
}
if (flag==1) {
break;
}
head++;
}
if (flag==0) {
cout<<"-1"<<endl;
}
return 0;
}
Submission Info
Submission Time
2021-01-20 14:57:07+0900
Task
C - 自宅からの脱出
User
luogu_bot5
Language
C++ (GCC 9.2.1)
Score
0
Code Size
2075 Byte
Status
WA
Exec Time
34 ms
Memory
16580 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:18:20: warning: ISO C++17 does not allow ‘register’ storage class specifier [-Wregister]
18 | for (register int i = 1; i <= n;i++) {
| ^
./Main.cpp:19:21: warning: ISO C++17 does not allow ‘register’ storage class specifier [-Wregister]
19 | for (register int j = 1; j <= n;j++) {
| ^
Judge Result
Set Name
All
Score / Max Score
0 / 100
Status
Set Name
Test Cases
All
input_0.txt, input_1.txt, input_10.txt, input_11.txt, input_12.txt, input_13.txt, input_14.txt, input_15.txt, input_16.txt, input_17.txt, input_18.txt, input_19.txt, input_2.txt, input_20.txt, input_21.txt, input_22.txt, input_23.txt, input_3.txt, input_4.txt, input_5.txt, input_6.txt, input_7.txt, input_8.txt, input_9.txt
Case Name
Status
Exec Time
Memory
input_0.txt
AC
14 ms
16240 KB
input_1.txt
AC
13 ms
16308 KB
input_10.txt
AC
14 ms
16240 KB
input_11.txt
WA
15 ms
16332 KB
input_12.txt
WA
13 ms
16264 KB
input_13.txt
WA
15 ms
16248 KB
input_14.txt
AC
22 ms
16544 KB
input_15.txt
WA
28 ms
16568 KB
input_16.txt
AC
17 ms
16416 KB
input_17.txt
AC
34 ms
16580 KB
input_18.txt
AC
16 ms
16360 KB
input_19.txt
AC
14 ms
16316 KB
input_2.txt
AC
13 ms
16216 KB
input_20.txt
AC
19 ms
16296 KB
input_21.txt
AC
22 ms
16444 KB
input_22.txt
AC
17 ms
16576 KB
input_23.txt
AC
21 ms
16456 KB
input_3.txt
AC
13 ms
16320 KB
input_4.txt
AC
12 ms
16196 KB
input_5.txt
AC
14 ms
16252 KB
input_6.txt
AC
12 ms
16380 KB
input_7.txt
AC
12 ms
16220 KB
input_8.txt
AC
16 ms
16328 KB
input_9.txt
AC
12 ms
16200 KB