Pagini recente » Cod sursa (job #2178630) | Cod sursa (job #2928286) | Cod sursa (job #867350) | Cod sursa (job #1871031) | Cod sursa (job #2117174)
#include <iostream>
#include <cstdio>
using namespace std;
const int NMAX = 1000001;
int a[NMAX], b[NMAX],c[NMAX];
int main()
{
FILE *fin, *fout;
int k,n,i,j,l,pun;
fin=fopen("interclasari.in","r");
fout=fopen("interclasari.out","w");
fscanf(fin,"%d\n",&k);
l=0;
for(int x=1;x<=k;x++){
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++)
fscanf(fin,"%d",&b[i]);
i=j=1;
pun=1;
if(x%2==1){
while(i<=l && j<=n){
if(a[i]<b[j])
c[pun++]=a[i++];
else
c[pun++]=b[j++];
}
while(i<=l)
c[pun++]=a[i++];
while(j<=n)
c[pun++]=b[j++];
l=pun-1;
}
else{
while(i<=l && j<=n){
if(c[i]<b[j])
a[pun++]=c[i++];
else
a[pun++]=b[j++];
}
while(i<=l)
a[pun++]=c[i++];
while(j<=n)
a[pun++]=b[j++];
l=pun-1;
}
}
fprintf(fout,"%d\n",l);
if(k%2==0)
for(i=1;i<=l;i++)
fprintf(fout,"%d ",a[i]);
else
for(i=1;i<=l;i++)
fprintf(fout,"%d ",c[i]);
fclose(fin);
fclose(fout);
return 0;
}