#include "jumps.h"
#include <bits/stdc++.h>
using namespace std;
int N;
vector<int> H;
vector<int> sorted;
vector< vector<int> > d;
unordered_map<int, int> id;
void washifloi_Init()
{
for (int k = 0; k < N; ++k)
for (int i = 0; i < N; ++i)
for(int j = 0; j < N; ++j)
d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
}
void verify(const int& i, const int& j, int &in)
{
if(H[j] > H[i] && H[j] < (in<N? H[in] : N+1))
in = j;
}
void init(int n, vector<int> h)
{
N = n;
H = h;
d.assign( N, vector<int>(N, N+1) );
for (int i = 0; i < n; ++i)
{
int in = N+1;
for (int j = i+1; j < n; ++j)
{
verify(i, j, in);
}
if(in < N)
d[i][in] = 1;
in = N+1;
for (int j = i-1; j >= 0; --j)
{
verify(i, j, in);
}
if(in < N)
d[i][in] = 1;
}
washifloi_Init();
}
int minimum_jumps(int A, int B, int C, int D)
{
int minJ = N+1;
for(int i = A; i <= B; ++i)
for(int j = C; j <= D; ++j)
{
minJ = min(minJ, d[i][j]);
}
if(minJ == N+1)
minJ = -1;
return minJ;
}
# | 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... |