//#include "obstacles.h"
#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
vector<int>HH,TT;
const int N=3e5+5;
bool ok[5][N];
int par[5][N];
int xx[4]={0,0,-1,1};
int yy[4]={1,-1,0,0};
int n,m;
void dfs(int y, int x, int P){
par[y][x]=P;
for(int i=0;i<4;i++){
int y2=y+yy[i],x2=x+xx[i];
if(y2>=n or y2<0 or x2>=m or x2<0)continue;
if(par[y2][x2]==0 and ok[y2][x2])dfs(y2,x2,P);
}
}
void initialize(std::vector<int> T, std::vector<int> H) {
n=T.size(),m=H.size();
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
ok[i][j]=0;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(T[i]>H[j]){
ok[i][j]=1;
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(ok[i][j] and par[i][j]==0){
dfs(i,j,i*m+j+10);
}
}
}
}
bool can_reach(int L, int R, int S, int D) {
return par[0][S]==par[0][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... |