#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
int R, C, N = 0;
bool trampolines[4005][4005];
bool visited[4005][4005];
int xStart = 0;
int yStart = 0;
int xEnd = 0;
int yEnd = 0;
bool dfs(int x, int y){
if (visited[x][y] == true) return false;
if (x > R || x < 1 || y > C || y < 1) return false;
visited[x][y] = true;
if (x == xEnd && y == yEnd){
return true;
}
if (trampolines[x][y] == false){
dfs(x, y+1);
}
else if (trampolines[x][y] == true){
dfs(x + 1, y);
dfs(x, y+1);
}
return visited[xEnd][yEnd];
}
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
memset(trampolines, false, sizeof(trampolines[0][0])*2500*2500);
cin >> R >> C >> N;
for (int i = 0; i < N; i++){
int temp1 = 0;
int temp2 = 0;
cin >> temp1 >> temp2;
trampolines[temp1][temp2] = true;
}
int T = 0;
cin >> T;
for (int i = 0; i < T; i++){
memset(visited, false, sizeof(visited[0][0])*2500*2500);
cin >> xStart >> yStart >> xEnd >> yEnd;
bool test = dfs(xStart, yStart);
if (test){
cout << "Yes" << endl;
}
else{
cout << "No" << endl;
}
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
77 ms |
12564 KB |
200 token(s): yes count is 21, no count is 179 |
2 |
Correct |
51 ms |
12492 KB |
200 token(s): yes count is 70, no count is 130 |
3 |
Correct |
49 ms |
12552 KB |
197 token(s): yes count is 25, no count is 172 |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1785 ms |
20100 KB |
expected NO, found YES [16th token] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
9 ms |
12876 KB |
Execution killed with signal 11 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
10 ms |
12780 KB |
Execution killed with signal 11 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
10 ms |
12876 KB |
Execution killed with signal 11 |
2 |
Halted |
0 ms |
0 KB |
- |