import
java.util.*;
public
class
GFG
{
public
static
boolean
isIncreasing(List<Integer> arr)
{
for
(
int
i =
1
; i < arr.size(); i++) {
if
(arr.get(i -
1
) > arr.get(i))
return
false
;
}
return
true
;
}
public
static
boolean
makeIncSeq(List<Integer> arr,
int
M)
{
List<Integer> temp =
new
ArrayList<>(arr);
if
(isIncreasing(arr) &&
2
* M < arr.size())
return
true
;
else
if
(M ==
0
|| arr.size() <
3
)
return
false
;
boolean
ans1 =
false
, ans2 =
false
, ans3 =
false
;
for
(
int
i = arr.size() -
1
; i >
0
; i--) {
if
(arr.get(i) < arr.get(i -
1
)) {
if
(arr.size() > i +
2
&& i >=
0
) {
arr =
new
ArrayList<>(temp);
arr.set(i, arr.get(i) + arr.get(i +
1
)
+ arr.get(i +
2
));
arr.remove(i +
1
);
arr.remove(i +
1
);
ans1 = makeIncSeq(arr, M -
1
);
}
if
(i >=
2
&& i < arr.size()) {
arr =
new
ArrayList<>(temp);
arr.set(i -
2
, arr.get(i -
2
)
+ arr.get(i -
1
)
+ arr.get(i));
arr.remove(i);
arr.remove(i -
1
);
ans2 = makeIncSeq(arr, M -
1
);
}
if
(i >=
1
&& i +
1
< arr.size()) {
arr =
new
ArrayList<>(temp);
arr.set(i -
1
, arr.get(i -
1
)
+ arr.get(i)
+ arr.get(i +
1
));
arr.remove(i);
arr.remove(i);
ans3 = makeIncSeq(arr, M -
1
);
}
}
}
return
ans1 || ans2 || ans3;
}
public
static
void
main(String[] args)
{
List<Integer> a
import
java.util.*;
public
class
GFG
{
public
static
boolean
isIncreasing(List<Integer> arr)
{
for
(
int
i =
1
; i < arr.size(); i++) {
if
(arr.get(i -
1
) > arr.get(i))
return
false
;
}
return
true
;
}
public
static
boolean
makeIncSeq(List<Integer> arr,
int
M)
{
List<Integer> temp =
new
ArrayList<>(arr);
if
(isIncreasing(arr) &&
2
* M < arr.size())
return
true
;
else
if
(M ==
0
|| arr.size() <
3
)
return
false
;
boolean
ans1 =
false
, ans2 =
false
, ans3 =
false
;
for
(
int
i = arr.size() -
1
; i >
0
; i--) {
if
(arr.get(i) < arr.get(i -
1
)) {
if
(arr.size() > i +
2
&& i >=
0
) {
arr =
new
ArrayList<>(temp);
arr.set(i, arr.get(i) + arr.get(i +
1
)
+ arr.get(i +
2
));
arr.remove(i +
1
);
arr.remove(i +
1
);
ans1 = makeIncSeq(arr, M -
1
);
}
if
(i >=
2
&& i < arr.size()) {
arr =
new
ArrayList<>(temp);
arr.set(i -
2
, arr.get(i -
2
)
+ arr.get(i -
1
)
+ arr.get(i));
arr.remove(i);
arr.remove(i -
1
);
ans2 = makeIncSeq(arr, M -
1
);
}
if
(i >=
1
&& i +
1
< arr.size()) {
arr =
new
ArrayList<>(temp);
arr.set(i -
1
, arr.get(i -
1
)
+ arr.get(i)
+ arr.get(i +
1
));
arr.remove(i);
arr.remove(i);
ans3 = makeIncSeq(arr, M -
1
);
}
}
}
return
ans1 || ans2 || ans3;
}
public
static
void
main(String[] args)
{
List<Integer> arr =
new
ArrayList<>(
Arrays.asList(
10
,
24
,
26
,
2
,
32
,
36
));
int
M =
2
;
if
(makeIncSeq(arr, M))
System.out.println(
"True"
);
else
System.out.println(
"False"
);
}
}rr =
new
ArrayList<>(
Arrays.asList(
10
,
24
,
26
,
2
,
32
,
36
));
int
M =
2
;
if
(makeIncSeq(arr, M))
System.out.println(
"True"
);
else
System.out.println(
"False"
);
}
}