Pagini recente » Cod sursa (job #487821) | Cod sursa (job #1826463) | Cod sursa (job #1667702) | Cod sursa (job #2874783) | Cod sursa (job #662361)
Cod sursa(job #662361)
#include <stdlib.h>
#include <stdio.h>
#include <fstream>
//#include <iostream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n, *a, *b, *p, i, j;
void afis(int j)
{
if(j<0)
return;
afis(p[j]);
fout<<a[j]<<" ";
}
int main()
{
fin>>n;
a = (int*)malloc(n*sizeof(int));
b = (int*)malloc(n*sizeof(int));
p = (int*)malloc(n*sizeof(int));
for(i = 0; i<n; i++)
fin>>a[i];
b[0] = 1;
p[0] = -1;
for(i = 1; i < n; i++)
{
b[i] = 1;
p[0] = -1;
for(j = 0; j < i; j++)
if(a[j] < a[i])
if(b[j] + 1 > b[i])
{
b[i] = b[j] + 1;
p[i] = j;
}
}
j = 0;
for(i = 1; i< n; i++)
if(b[i] > b[j])
j = i;
fout<<b[j]<<endl;
afis(j);
free(a);
free(b);
free(p);
return 0;
}