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