| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1363639 | sieg__v1 | Rainforest Jumps (APIO21_jumps) | C++20 | 0 ms | 408 KiB |
#include "jumps.h"
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
long long n_size,INF = 10000000000;
vector<int> a;
int dist[2001][2001];
void init(int N, vector<int> H) {
vector<vector<int>> gp(N);
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N; j++) dist[i][j] = INF;
for (int j = i + 1; j < N; ++j) {
if (H[j] > H[i]) { gp[i].push_back(j); break; }
}
for (int j = i - 1; j >= 0; --j) {
if (H[j] > H[i]) { gp[i].push_back(j); break; }
}
}
for (int i = 0; i < N; ++i) {
dist[i][i] = 0;
queue<int> q;
q.push(i);
while (!q.empty()) {
int u = q.front(); q.pop();
for (int v : gp[u]) {
if (dist[i][v] == INF) {
dist[i][v] = dist[i][u] + 1;
q.push(v);
}
}
}
}
}
int minimum_jumps(int A, int B, int C, int D) {
int min_ans = INF;
for (int i = A; i <= B; ++i) {
for (int j = C; j <= D; ++j) {
if (dist[i][j] < min_ans) {
min_ans = dist[i][j];
}
}
}
if (min_ans >= INF) {
return -1;
}
return (int)min_ans;
}| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
