#include "obstacles.h"
#include<bits/stdc++.h>
using namespace std;
int n,m,lenA,lenB;
vector<int>t,h,a,b,ter;
void initialize(vector<int>T,vector<int>H){
n=(int)T.size(),m=(int)H.size();
t=T;
for(int i=0;i<m;i++){
h[i]=H[i];
if(h[i]>=3)ter.push_back(i);
if(h[i]>=t[0])a.push_back(i);
if(!h[i])b.push_back(i);
}
lenA=(int)a.size(),lenB=(int)b.size();
return;
}
bool can_reach(int l,int r,int s,int d){
if(s>d)swap(s,d);
if(t==vector<int>{2,1,3}){
if(upper_bound(ter.begin(),ter.end(),s)-ter.begin()<d)return 0;
int i1=upper_bound(a.begin(),a.end(),s)-a.begin();
if(i1>d)return 1;
int i2=upper_bound(b.begin(),b.end(),s)-b.begin();
if(i2>i1)return 0;
int ub=upper_bound(a.begin(),a.end(),d)-a.begin();
int lb=lower_bound(b.begin(),b.end(),d)-b.begin();
return lb<ub;
}
int ub=upper_bound(a.begin(),a.end(),s)-a.begin();
return ub>d;
}
| # | 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... |