Cod sursa(job #1863915)

Utilizator EvohuntAndrei Dana Evohunt Data 31 ianuarie 2017 12:33:28
Problema Cel mai lung subsir comun Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include <fstream>

using namespace std;

ifstream fin("cmlsc.in");
ofstream fout("cmlsc.out");

int n, m;
int x;
int A[10030];
int B[10030];

int main()
{
    fin >> n >> m;

    for (int i = 1; i <= n; i++) {
        fin >> x;
        A[i] = x;
    }

    for (int i = 1; i <= m; i++) {
        fin >> x;
        B[i] = x;
    }

    int i = 1;
    int j = 1;

    while (i <= n && j <= m) {
        if (A[i] == B[j]) {
            fout << A[i] << ' ';
            i++;
            j++;
        }
        else
            if (A[i] < B[j])
                i++;
            else
                j++;
    }

    if (i > n)
        i--;
    if (j > m)
        j--;

    if (i == j) {
        return 0;
    }

    if (i == n)
        for (; j <= m; j++)
            if (B[j] == A[i])
                fout << B[j] << ' ';

    if (j == m)
        for (; i <= n; i++)
            if (A[i] == B[j])
                fout << A[i] << ' ';


    return 0;
}