Дано натуральное число N, далее следуют N целых чисел. Необходимо вывести в первой строке длину наибольшего среза. Со следующей строки вывести через пробел содержимое среза. Если таких срезов несколько, то выводить каждый из них с новой строки.
Sample Input:
7
2 1 2 3 1 5 7
Sample Output:
3
1 2 3
1 5 7
Вроде с первой частью задачи я справился, длину наибольшего среза он мне выводит, но вторая часть программы не работает. Подскажите, что неправильно делаю?
import java.util.Scanner;
public class TestClass {
public static void main(String[] args) throws IOException {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
int[] a = new int[N];
int d = 0;
int e = 0;
int f = 0;
for (int i = 0; i < N; i++) {
a[i] = in.nextInt();
}
for (int b = 0; b < N - 1; b++) {
if (a[b] > a[b + 1]) {
e++;
if (e >= f) {
f = e;
e = 0;
}
} else if (a[b] < a[b + 1]) {
e++;
}
}
{
e++;
if (f <= e) {
f = e;
}
}
if (f == 0) {
System.out.println(e);
} else {
System.out.println(f);
}
int k = 0;
int[] g = new int[f - 1];
for (int b = 0; b < N - 1; b++) {
while (k < f) {
g[k] = a[b];
if (a[b] > a[b + 1]) {
k = f;
for (int v = 0; v < f - 1; v++) {
g[v] = 0;
}
k = 0;
}
}
k++;
}
}
}
a,b,c. Я не пойму как вы сами до сих пор в этом разбирались) – fedotsoldier Jun 20 '19 at 17:15