Pagini recente » Cod sursa (job #2542487) | Cod sursa (job #2256467) | Cod sursa (job #20081) | Cod sursa (job #1136872) | Cod sursa (job #552900)
Cod sursa(job #552900)
#include <stdio.h>
using namespace std;
#define nmax 100005
int SOL[nmax], poz[nmax], V[nmax];
int N;
void citire ()
{
int i;
scanf("%d", &N);
for (i = 1; i <= N; ++i) scanf("%d", &V[i]);
}
void afisare (int x)
{
if ( x ) afisare(poz[x]);
else return;
printf("%d ", V[x]);
}
void solve ()
{
int i, j, ind, maxim = 0;
SOL[1] = 1;
for (i = 2; i <= N; ++i)
{
for (j = 0; j < i; ++j)
if (V[j] < V[i] && SOL[j] >= SOL[i]) { SOL[i] = SOL[j] + 1; poz[i] = j; }
if (SOL[i] > maxim) { maxim = SOL[i]; ind = i; }
}
printf("%d\n", SOL[ind]);
afisare (ind);
}
int main ()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
citire ();
solve ();
return 0;
}