Pagini recente » Cod sursa (job #331707) | Cod sursa (job #2299901) | Cod sursa (job #2554338) | Cod sursa (job #662462) | Cod sursa (job #116982)
Cod sursa(job #116982)
#include <stdio.h>
#define NMax 10005
int n, m, nm;
int a[NMax], b[NMax], c[NMax], lg[NMax];
FILE *f, *g;
void citire();
void inter();
void pd();
int main()
{
citire();
inter();
pd();
return 0;
}
void pd()
{
int i, j, lgmax = 0;
lg[0] = 1;
for (i=1; i<nm; i++ )
{
lg[i] = 1;
for (j=i-1; j>=0; j--)
{
if ( lg[j]+1 > lg[i] && c[i] > c[j] )
lg[i] = lg[j]+1;
if ( lg[i] > lgmax )
lgmax = lg[i];
}
}
fprintf( g, "%d\n", lgmax );
for (i=0; i<nm; i++)
fprintf( g, "%d ", c[i] );
}
void inter()
{
int i, j, k=0;
i=j=0;
while ( i < n && j < m )
{
if ( a[i] <= b[j] )
c[k++] = a[i++];
else
c[k++] = b[j++];
}
while ( i<n )
c[k++] = a[i++];
while ( j<m )
c[k++] = b[j++];
nm = k;
}
void citire()
{
int i;
f = fopen( "interclasare.in", "rt" );
g = fopen( "interclasare.out", "wt" );
fscanf( f, "%d", &n );
for (i=0; i<n; i++)
fscanf( f, "%d", &a[i] );
fscanf( f, "%d", &m );
for (i=0; i<m; i++)
fscanf( f, "%d", &b[i] );
}