Cod sursa(job #1261997)

Utilizator TrixerAdrian Dinu Trixer Data 12 noiembrie 2014 21:51:26
Problema Cel mai lung subsir comun Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.11 kb
#include <iostream>
#include <fstream>

#define MAX 1024

using namespace std;

void add_element(int v[MAX], int x, int &n)
{
    v[n] = x;
    n = n + 1;
}

int main()
{
    int a[MAX],b[MAX],c[MAX],
        n,m,i,j,k = 0,
        last_pos = -1;

    ifstream f;
    ofstream g;

    f.open("cmlsc.in");
    g.open("cmlsc.out");

    f >> m >> n;

    for (i = 0; i < m; i++) f >> a[i];
    for (i = 0; i < n; i++) f >> b[i];

    for (i = 0; i < n; i++)
    {
        for (j = 0; j < m; j++)
        {
            if (b[i] == a[j] && j > last_pos)
            {
                add_element(c,b[i],k);
                if (i == n - 1) break;
                last_pos = j;
                i++;
            }
            else if (b[i] == a[j] && j < last_pos)
            {
                k = 0;
                add_element(c,b[i],k);
                if (i == n - 1) break;
                last_pos = j;
                i++;
            }
        }
    }

    g << k << '\n';
    for (i = 0; i < k; i++)
        g << c[i] << ' ';

    f.close();
    g.close();

    return 0;
}