#include "obstacles.h"
#include<bits/stdc++.h>
using namespace std;
const int dx[]={-1,0,1,0};
const int dy[]={0,-1,0,1};
int N,M;
vector<vector<int>>G;
bool ok(int x,int y,int L,int R){return L<=y&&y<=R&&0<=x&&x<N;}
void initialize(vector<int>T,vector<int>H)
{
N=T.size();
M=H.size();
G.assign(N,{});
for(int i=0;i<T.size();++i)
for(int j=0;j<H.size();++j)
G[i].push_back(T[i]<=H[j]);
}
bool can_reach(int L,int R,int S,int D)
{
vector<vector<int>>d(N,vector<int>(M,-1));
d[0][S]=0;
queue<pair<int,int>>qu;
qu.push({0,S});
while(!qu.empty())
{
auto[x,y]=qu.front();
qu.pop();
for(int i=0;i<4;++i)
{
int nx=x+dx[i];
int ny=y+dy[i];
if(ok(nx,ny,L,R)&&d[nx][ny]==-1)
if(!G[nx][ny])
{
d[nx][ny]=d[x][y]+1;
qu.push({nx,ny});
}
}
}
return d[0][D]!=-1;
}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |