Pagini recente » Cod sursa (job #2141008) | Cod sursa (job #421180) | Cod sursa (job #1470945) | Cod sursa (job #2073124) | Cod sursa (job #2356948)
import java.util.*;
import java.lang.*;
class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] arr = new int[n];
int[] best = new int[n];
int[] pre = new int[n];
int absoluteMax = 0;
int absoluteMaxIdx = -1;
for (int i = 0; i < n; ++i)
arr[i] = in.nextInt();
best[0] = 1;
for (int i = 1; i < arr.length; ++i) {
int maxIdx = i;
int maxCount = 0;
for (int j = 0; j < i; ++j)
if (arr[j] < arr[i] && best[j] > maxCount) {
maxCount = best[j];
maxIdx = j;
}
best[i] = maxCount + 1;
pre[i] = maxIdx;
if (best[i] > absoluteMax) {
absoluteMax = best[i];
absoluteMaxIdx = i;
}
}
System.out.println(absoluteMax);
while (absoluteMax != pre[absoluteMax]) {
System.out.print(arr[absoluteMax] + " ");
absoluteMax = pre[absoluteMax];
}
System.out.println(arr[absoluteMax]);
}
}