#include "obstacles.h"
#include <bits/stdc++.h>
using namespace std;
vector<int> t,h;
void initialize(vector<int> T, vector<int> H)
{
t=T;
h=H;
return;
}
bool can_reach(int L, int R, int S, int D)
{
vector<pair<int,int>> vec1,vec2;
int br=h[S];
int l=S,r=S;
for(int i=0;i<t.size();i++)
{
if(t[i]<=br)
break;
for(;l>0;l--)
{
if(h[l-1]>=t[i])
break;
else
{
br=min(br,h[l-1]);
}
}
for(;r<h.size()-2;r++)
{
if(h[r+1]>=t[i])
break;
else
{
br=min(br,h[r+1]);
}
}
vec1.push_back({l,r});
}
br=h[D];
l=D,r=D;
for(int i=0;i<t.size();i++)
{
if(t[i]<=br)
break;
for(;l>0;l--)
{
if(h[l-1]>=t[i])
break;
else
{
br=min(br,h[l-1]);
}
}
for(;r<h.size()-2;r++)
{
if(h[r+1]>=t[i])
break;
else
{
br=min(br,h[r+1]);
}
}
vec2.push_back({l,r});
}
bool pos=false;
for(int i=0;i<min(vec1.size(),vec2.size());i++)
{
if(vec1[i].first>vec2[i].second || vec1[i].second<vec2[i].first)
continue;
else
{
return true;
}
}
return false;
}
# | 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... |