Submission #1131250

#TimeUsernameProblemLanguageResultExecution timeMemory
1131250jpfr12Trampoline (info1cup20_trampoline)C++20
23 / 100
2094 ms122852 KiB
#include <bits/stdc++.h>

typedef long long ll;
typedef unsigned long long int ull;
using namespace std;
const ll MOD = (ll)1e9+7;
int MAXN = 1e6;

//classes


//global
int ROW, COL, N;
vector<vector<bool>> Green;
vector<vector<bool>> vis;

bool bfs(int Rs, int Cs, int Re, int Ce){
  vis[Rs][Cs] = true;
  queue<pair<int,int>> Q;
  Q.emplace(Rs, Cs);
  while(!Q.empty()){
    pair<int,int> p = Q.front();
    Q.pop();
    int x = p.first;
    int y = p.second;
    if(x == Re && y == Ce) return true;
    if(Green[x][y]){
      if(x+1 < ROW && !vis[x+1][y]){
        vis[x+1][y] = true;
        Q.emplace(x+1, y);
      }
      if(y+1 < COL && !vis[x][y+1]){
        vis[x][y+1] = true;
        Q.emplace(x, y+1);
      }
    }
    else{
      if(y+1 < COL && !vis[x][y+1]){
        vis[x][y+1] = true;
        Q.emplace(x, y+1);
      }
    }
  }
  return false;
}

int main(){
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  //ifstream fin("hps.in");
  //ofstream fout("hps.out");
  //stop
  cin >> ROW >> COL >> N;
  Green.resize(ROW, vector<bool>(COL, false));
  vis.resize(ROW, vector<bool>(COL, false));
  for(int i = 0; i < N; i++){
    int a, b;
    cin >> a >> b;
    Green[a-1][b-1] = true;
  }
  int T;
  cin >> T;
  while(T--){
    int Rstart, Cstart, Rend, Cend;
    cin >> Rstart >> Cstart >> Rend >> Cend;
    if(bfs(Rstart-1, Cstart-1, Rend-1, Cend-1)) cout << "Yes\n";
    else cout << "No\n";
    vis.assign(ROW, vector<bool>(COL, false));
  }
  return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...