#include<bits/stdc++.h>
using namespace std;
vector<int> c;
void initialize(vector<int> t, vector<int> h) {
c.resize(h.size(), -1);
auto dfs = [&](auto &dfs, int i, int j, int val) -> void {
if (h[j] >= t[i] || i < 0 || i >= t.size() || j >= h.size()) {
return;
}
if (i == 0)
c[j] = val;
dfs(dfs, i+1, j, val);
dfs(dfs, i, j+1, val);
if (i == 2 && j-1 >= 0 && h[j-1] >= t[i-1] && h[j] < t[0] && c[j] == -1) {
int ind = j;
while (ind >= 0 && h[ind] < t[0]) {
c[ind] = val;
ind--;
}
if (j+1 < h.size() && h[j+1] < t[0])
dfs(dfs, 0, j+1, val);
}
};
for (int i = 0; i < h.size(); i++)
if (c[i] == -1 && h[i] < t[0])
dfs(dfs, 0, i, i);
}
bool can_reach(int ll, int r, int s, int d) {
if (d < s)
swap(d, s);
return (c[d] == s);
}
| # | 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... |