#include "jumps.h"
#include <vector>
#include <set>
#include <cmath>
#include <iostream>
using namespace std;
int const N=2e5+10,LG=20;
int mx[N][LG]={};
vector<int>a;
int get(int l,int r)
{
int lg=log2(r-l+1);
if (a[mx[l][lg]]>=a[mx[r-(1<<lg)+1][lg]])
return mx[l][lg];
return mx[r-(1<<lg)+1][lg];
}
void init(int N,vector<int> H)
{
a=H;
for (int i=0;i<N;i++)
mx[i][0]=i;
for (int i=1;(1<<i)<=N;i++)
for (int j=0;j+(1<<(i-1))<N;j++)
{
if (a[mx[j][i-1]]>=a[mx[j+(1<<(i-1))][i-1]])
mx[j][i]=mx[j][i-1];
else
mx[j][i]=mx[j+(1<<(i-1))][i-1];
}
}
int minimum_jumps(int A, int B, int C, int D)
{
int minsteps=1e9+10;
for (int i=A;i<=B;i++)
{
int z=get(i,D);
if (z>=C&&z<=D)
{
int st=i,en=z,cnt=0;;
while (1)
{
int f=st;
while (st+1<en)
{
int mid=(st+en)/2;
if (get(st,mid)>f)
en=mid;
else
st=mid;
}
cnt++;
if (en>=C&&en<=D)
break;
st=en;
en=z+1;
}
minsteps=min(cnt,minsteps);
}
}
if (minsteps==1e9+10)
return -1;
return minsteps;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Execution timed out |
4066 ms |
14540 KB |
Time limit exceeded |
4 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Correct |
0 ms |
344 KB |
Output is correct |
4 |
Correct |
0 ms |
344 KB |
Output is correct |
5 |
Incorrect |
1 ms |
344 KB |
Output isn't correct |
6 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Correct |
0 ms |
344 KB |
Output is correct |
4 |
Correct |
0 ms |
344 KB |
Output is correct |
5 |
Incorrect |
1 ms |
344 KB |
Output isn't correct |
6 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
436 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Correct |
0 ms |
344 KB |
Output is correct |
4 |
Correct |
0 ms |
344 KB |
Output is correct |
5 |
Execution timed out |
4059 ms |
17024 KB |
Time limit exceeded |
6 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Correct |
0 ms |
344 KB |
Output is correct |
4 |
Incorrect |
126 ms |
9772 KB |
Output isn't correct |
5 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Correct |
0 ms |
344 KB |
Output is correct |
4 |
Incorrect |
126 ms |
9772 KB |
Output isn't correct |
5 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Execution timed out |
4066 ms |
14540 KB |
Time limit exceeded |
4 |
Halted |
0 ms |
0 KB |
- |