This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
#define lalala ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
//#define ll long long
//#define int long long int
#define endl '\n'
#define N 2520
//#define M 400100
//#define big 2147483647
//#define bigg 9223372036854775807
//#define pb push_back
#define p push
//#define ins insert
#define f first
#define s second
bool arr[N][N],green[N][N];
//int hesap(int x,int y,int r,int c)
inline bool dfs(int x,int y,int a,int b,int r,int c){
queue<pair<int,int>> q;
q.p({x,y});
if(x>a)return 0;
if(y>b)return 0;
if(x==a)return 1;
while(q.size()){
x=q.front().f,y=q.front().s;
q.pop();
if(arr[x][y])continue;
arr[x][y]=1;
if(x==a&&y<=b)return 1;
if(y>b)continue;
if(x>a)continue;
if(x!=r&&arr[x+1][y]==0&&green[x][y]){
q.p({x+1,y});
continue;
}
if(y!=c&&arr[x][y+1]==0){
q.p({x,y+1});
}
}
return 0;
}
signed main(){
lalala;
int r,c,n;cin>>r>>c>>n;
vector<int> yedek;
for(int i=0;i<n;i++){
int a,b;cin>>a>>b;
green[a][b]=1;
}
int q;cin>>q;
while(q--){
memset(arr,0,sizeof(arr));
int x,y,a,b;cin>>x>>y>>a>>b;
int ok=dfs(x,y,a,b,r,c);
if(ok)cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |