Pagini recente » Cod sursa (job #113522) | Cod sursa (job #1537755) | Cod sursa (job #3190242) | Cod sursa (job #26803) | Cod sursa (job #629643)
Cod sursa(job #629643)
#include<stdio.h>
#include<ctype.h>
#include<cstdlib>
#include<string>
#define MaxKN 20000100
#define MaxN 1000100
int N,K,A[MaxKN],B[MaxN],C[MaxKN],a,nr,NR,p1,p2,NR2;
char S[MaxKN],S2[100];
int main()
{
FILE *f = fopen("interclasari.in","r");
FILE *g = fopen("interclasari.out","w");
fscanf(f,"%d ",&K);
for(int i=1;i<=K;i++)
{
fscanf(f,"%d\n",&N);
if(N)
{
fgets(S,sizeof(S),f);
a = 0; NR2 = 0; p1 = 1; p2 = 1;
for(int j=0;S[j];j++)
if(isdigit(S[j]))
{
nr = 0;
for(;isdigit(S[j]);j++)
nr = nr*10 + S[j]-'0';
B[++a] = nr;
}
for(int i=1;i<=NR;i++)
C[i] = A[i];
for(;p1 <= N && p2 <= NR;)
if(B[p1] < C[p2])
A[++NR2] = B[p1++];
else
A[++NR2] = C[p2++];
for(;p1 <= N;p1++)
A[++NR2] = B[p1];
for(;p2 <= NR;p2++)
A[++NR2] = C[p2];
NR = NR2;
}
}
fprintf(g,"%d\n",NR2);
for(int i=1;i<=NR2;i++)
fprintf(g,"%d ",A[i]);
fclose(g);
fclose(f);
return 0;
}