#include <iostream>
#include <vector>
using namespace std;
int parent[1000000];
int find(int x){
if (parent[x] == -1){
return x;
}
int ans = find(parent[x]);
parent[x] = ans;
return ans;
}
void merge(int x, int y){
int component1 = find(x), component2 = find(y);
if (component1 != component2){
parent[component1] = component2;
}
}
void initialize(std::vector<int> T, std::vector<int> H){
for (int i = 0;i < T.size();i++){
parent[i] = -1;
}
for (int i = 0;i < T.size();i++){
if (T[i] > H[0]){
if (i >= 1 and T[i - 1] > H[i]){
merge(i, i - 1);
}
if (i < (T.size() - 1) and T[i + 1] > H[0]){
merge(i, i + 1);
}
}
}
}
bool can_reach(int L, int R, int S, int D){
if (find(S) == find(D)){
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... |