import
java.util.*;
class
GFG{
static
boolean
isCriticalPoint(
int
prev,
int
pres,
int
next)
{
if
((prev < pres && pres > next)
|| (prev > pres && pres < next))
return
true
;
return
false
;
}
static
Vector<Integer> maxmincriticaldis(
int
[] arr,
int
n)
{
Vector<Integer> pos =
new
Vector<Integer>();
for
(
int
i =
1
; i < n -
1
; i++) {
if
(isCriticalPoint(arr[i -
1
], arr[i],
arr[i +
1
]))
pos.add(i);
}
Vector<Integer> ans =
new
Vector<Integer>();
if
(pos.size() <=
1
) {
ans.add(-
1
);
ans.add(-
1
);
}
else
{
int
mval = Integer.MAX_VALUE;
for
(
int
i =
1
; i < pos.size(); i++)
mval = Math.min(mval, pos.get(i) - pos.get(i-
1
));
ans.add(mval);
ans.add(pos.get(pos.size() -
1
) - pos.get(
0
));
}
return
ans;
}
public
static
void
main(String[] args)
{
int
[] arr = {
5
,
3
,
1
,
2
,
5
,
1
,
2
};
int
n = arr.length;
Vector<Integer> ans = maxmincriticaldis(arr, n);
for
(
int
i =
0
; i < ans.size(); i++)
System.out.print(ans.get(i)+
" "
);
}
}