Pagini recente » Cod sursa (job #1117922) | Cod sursa (job #587523) | Cod sursa (job #317177) | Cod sursa (job #1710624) | Cod sursa (job #1221112)
#include <iostream>
#include <fstream>
#define MAX_LENGTH 1000000
int result[MAX_LENGTH], a[MAX_LENGTH], b[MAX_LENGTH];
long n, m, len;
using namespace std;
void interclasare(int a[MAX_LENGTH], long n, int b[MAX_LENGTH], long m, int result[MAX_LENGTH], long &length)
{
long i = 0, j = 0, k;
length = m + n;
for(k = 0 ; (i < n) && (j < m) ; k++)
if(a[i] < b[j])
{
result[k] = a[i];
i++;
}
else
{
result[k] = b[j];
j++;
}
while(i < n)
{
result[k] = a[i];
i++;
k++;
}
while(j < m)
{
result[k] = b[j];
j++;
k++;
}
}
int main()
{
int k, i = 1;
long j;
fstream f("interclasari.in", ios::in);
fstream g("interclasari.out", ios::out);
f >> k;
f >> n;
for(j = 0 ; j < n ; j++)
f >> a[j];
while(i < k)
{
f >> m;
for(j = 0 ; j < m ; j++)
f >> b[j];
i++;
interclasare(a, n, b, m, result, len);
n = len;
for(j = 0 ; j < len ; j++)
a[j] = result[j];
}
g << len <<endl;
for(j = 0 ; j < len ; j++)
g << result[j] << " ";
return 0;
}