Cod sursa(job #2046041)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 23 octombrie 2017 12:28:49
Problema Interclasari Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <fstream>

using namespace std;

ifstream f("interclasari.in");
ofstream g("interclasari.out");

int a[1000005], b[1000005], sol[1000005], s2[1000005], t, i;

void interclas(int *a, int *b, int *c) {
    int i = 1, j = 1;
    c[0] = 0;
    if (b[0] == 0) {
        for (i = 0; i <= a[0]; i++)
            c[i] = a[i];
    } else if (a[0] == 0) {
        for (i = 0; i <= b[0]; i++)
            c[i] = b[i];
    } else {
        while (i <= a[0] && j <= b[0]) {
            if (a[i] < b[j]) c[++c[0]] = a[i++];
            else if (a[i] > b[j]) c[++c[0]] = b[j++];
            else c[++c[0]]=a[i], c[++c[0]] = b[j], i++,j++;
        }
        while (i <= a[0]) c[++c[0]] = a[i++];
        while (i <= b[0]) c[++c[0]] = b[j++];

    }
    for (i = 0; i <= c[0]; i++)
        a[i] = c[i];
}

int main() {
    f >> t;
    t--;
    f >> sol[0];
    for (i = 1; i <= sol[0]; i++)
        f >> sol[i];
    while (t--) {
        f >> a[0];
        for (i = 1; i <= a[0]; i++)
            f >> a[i];
        interclas(sol,a,s2);
    }
    g << sol[0] << '\n';
    for (i = 1; i <= sol[0]; i++)
        g << sol[i] << ' ';
    return 0;
}