Submission #3765022
Source Code Expand
#include <cstdio>
#include <deque>
#define INF 3
using namespace std;
struct point {
int x;
int y;
};
struct point operator + (const point& p, const point& q) {
point result;
result.x = p.x+q.x; result.y = p.y+q.y;
return result;
}
bool operator == (const point& p, const point& q) {
return p.x == q.x && p.y == q.y;
}
bool operator < (const point& p, const point& q) {
return p.x < q.x || p.y < q.y;
}
int main () {
point p, g, pn;
int H, W, i, j;
point next[4] = {{1,0},{0,1},{-1,0},{0,-1}};
scanf("%d %d",&H,&W);
p.x = -1; g.y = -1;
int d[H][W];
char map[H][W+1];
for (i=0; i<H; i++) {
scanf("%s",map[i]);
for (j=0; j<W; j++) {
d[i][j] = INF;
if (map[i][j] == 's')
p = point{i,j};
else if (map[i][j] == 'g')
g = point{i,j};
}
}
deque<point> Q;
map[p.x][p.y] = 'x';
d[p.x][p.y] = 0;
Q.push_back(p);
while (Q.size() != 0) {
p = Q.front(); Q.pop_front();
for (i=0; i<4; i++) {
pn = p + next[i];
if (pn < point{0,0} || point{H-1,W-1} < pn) continue;
if (pn == g) {
printf("YES\n");
return 0;
} else if (map[pn.x][pn.y] == '.') {
map[pn.x][pn.y] = 'x';
d[pn.x][pn.y] = d[p.x][p.y];
Q.push_front(pn);
} else if (map[pn.x][pn.y] == '#' && d[p.x][p.y] < 2) {
map[pn.x][pn.y] = 'x';
d[pn.x][pn.y] = d[p.x][p.y] + 1;
Q.push_back(pn);
}
}
}
printf("NO\n");
return 0;
}
Submission Info
Submission Time
2018-12-09 16:40:05+0900
Task
A - 大好き高橋君
User
shugo256
Language
C++14 (GCC 5.4.1)
Score
0
Code Size
1745 Byte
Status
RE
Exec Time
97 ms
Memory
256 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:29:25: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d",&H,&W);
^
./Main.cpp:34:27: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%s",map[i]);
^
Judge Result
Set Name
All
Score / Max Score
0 / 100
Status
Set Name
Test Cases
All
00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 00_sample_05.txt, 01_rnd_00.txt, 01_rnd_01.txt, 01_rnd_02.txt, 01_rnd_03.txt, 01_rnd_04.txt, 01_rnd_05.txt, 01_rnd_06.txt, 01_rnd_07.txt, 01_rnd_08.txt, 01_rnd_09.txt, 01_rnd_10.txt, 01_rnd_11.txt, 01_rnd_12.txt, 01_rnd_13.txt, 01_rnd_14.txt, 01_rnd_15.txt, 01_rnd_16.txt, 01_rnd_17.txt, 01_rnd_18.txt, 01_rnd_19.txt, 02_max_00.txt, 02_max_01.txt, 02_max_02.txt, 03_max2_00.txt, 03_max2_01.txt, 03_max2_02.txt
Case Name
Status
Exec Time
Memory
00_sample_01.txt
WA
1 ms
256 KB
00_sample_02.txt
WA
1 ms
256 KB
00_sample_03.txt
WA
1 ms
256 KB
00_sample_04.txt
RE
97 ms
256 KB
00_sample_05.txt
WA
1 ms
256 KB
01_rnd_00.txt
WA
1 ms
256 KB
01_rnd_01.txt
WA
1 ms
256 KB
01_rnd_02.txt
WA
1 ms
256 KB
01_rnd_03.txt
WA
1 ms
256 KB
01_rnd_04.txt
WA
1 ms
256 KB
01_rnd_05.txt
WA
1 ms
256 KB
01_rnd_06.txt
WA
1 ms
256 KB
01_rnd_07.txt
WA
1 ms
256 KB
01_rnd_08.txt
WA
1 ms
256 KB
01_rnd_09.txt
WA
1 ms
256 KB
01_rnd_10.txt
WA
1 ms
256 KB
01_rnd_11.txt
WA
1 ms
256 KB
01_rnd_12.txt
WA
1 ms
256 KB
01_rnd_13.txt
WA
1 ms
256 KB
01_rnd_14.txt
WA
1 ms
256 KB
01_rnd_15.txt
WA
1 ms
256 KB
01_rnd_16.txt
WA
1 ms
256 KB
01_rnd_17.txt
WA
1 ms
256 KB
01_rnd_18.txt
WA
1 ms
256 KB
01_rnd_19.txt
WA
1 ms
256 KB
02_max_00.txt
WA
1 ms
256 KB
02_max_01.txt
WA
1 ms
256 KB
02_max_02.txt
WA
1 ms
256 KB
03_max2_00.txt
RE
97 ms
256 KB
03_max2_01.txt
RE
96 ms
256 KB
03_max2_02.txt
RE
96 ms
256 KB