Cod sursa(job #2220809)

Utilizator amimunAmelia Munteanu amimun Data 12 iulie 2018 16:37:03
Problema Cel mai lung subsir comun Scor 0
Compilator java Status done
Runda Arhiva educationala Marime 2.12 kb
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) {
	    short M, N, i, j;
	    short[] a;
	    short[] b;
	    String line;
        StringTokenizer st;

	    try {
            BufferedReader reader = new BufferedReader(new FileReader("cmlsc.in"));
            PrintWriter writer = new PrintWriter("cmlsc.out");
            line = reader.readLine();
            st = new StringTokenizer(line, " ");
            M = Short.parseShort(st.nextToken());
            N = Short.parseShort(st.nextToken());
            a = new short[M + 1];
            b = new short[N + 1];
            line = reader.readLine();
            st = new StringTokenizer(line, " ");
            for (i = 1; i <= M; i++) {
                a[i] = Short.parseShort(st.nextToken());
            }
            line = reader.readLine();
            st = new StringTokenizer(line, " ");
            for (i = 1; i <= N; i++) {
                b[i] = Short.parseShort(st.nextToken());
            }
            short[] common = new short[0];
            short[] cmlsc = new short[0];
            int length = common.length, MAX_LEN = 0;
            for (i = 1; i <= M; i++) {
                for (j = 1; j <= N; j++) {
                    if (a[i] == b[j]) {
                        common = Arrays.copyOf(common, length + 1);
                        common[length] = a[i];
                        length++;
                        continue;
                    }
                }
                if (length > MAX_LEN) {
                    cmlsc = Arrays.copyOf(common, length);
                    MAX_LEN = length;
                }
            }
            writer.write(String.valueOf(MAX_LEN));
            writer.write("\n");
            for (i = 0; i < MAX_LEN; i++) {
                writer.write(String.valueOf(cmlsc[i]) + ((i != MAX_LEN - 1) ? " " : ""));
            }
            reader.close();
            writer.close();
        } catch (Exception e) {

        }
    }
}