Cod sursa(job #2680243)

Utilizator mstevanStevan mstevan Data 3 decembrie 2020 00:08:18
Problema Subsir crescator maximal Scor 40
Compilator java Status done
Runda Arhiva educationala Marime 1.83 kb
import java.io.*;
import java.util.Scanner;

public class Main {
    private static int n;
    private static int[] array;

    public static void main(String[] args) {
        File inputFile = new File("scmax.in");
        File outputFile = new File("scmax.out");

        try {
            FileInputStream inputStream = new FileInputStream(inputFile);
            Scanner scanner = new Scanner(inputStream);
            FileOutputStream outputStream = new FileOutputStream(outputFile);
            PrintWriter writer = new PrintWriter(outputStream);

            n = scanner.nextInt(); // number of letters in 1st
            array = new int[n];
            int[] longestsequence = new int[n];
            for (int i = 0; i < n; i++) {
                longestsequence[i] = 1;
                array[i] = scanner.nextInt();
            }

            int max = 0;
            int maxposition = 0;
            for (int i = 0; i < n; i++) {
                for (int j = 0; j < i; j++)
                    if (array[i] > array[j] && longestsequence[i] < longestsequence[j] + 1)
                        longestsequence[i] = longestsequence[j] + 1;

                if (longestsequence[i] > max) {
                    max = longestsequence[i];
                    maxposition = i;
                }
            }

            writer.println(max);
            String sequence = "";
            //int nextelement;
            for (int i = maxposition, j = max; i >=0 && j >= 0; i--){
                if (longestsequence[i] == j) {
                    sequence = array[i] + " " + sequence;
                    //nextelement = array[i];
                    j--;
                }
            }
            writer.print(sequence);

            inputStream.close();

            writer.close();
            outputStream.close();

        } catch (IOException e) {

        }
    }
}