Pagini recente » Rating Anul asta in play-out (fc_oni_cu_50_pct) | Cod sursa (job #1212984) | Cod sursa (job #632057) | Cod sursa (job #2664566) | Cod sursa (job #1552745)
#include <cstdio>
using namespace std;
int n;
int x[100000]; //sir initial
int y[100000]; //sir cu lungimi
void citire()
{
scanf("%d", &n);
for(int i = 0; i < n; i++)
{
scanf("%d", &x[i]);
}
}
void calculeazaLungimi()
{
y[n - 1] = 1;
for(int i = n - 2; i >= 0; i--)
{
int maxim = 0;
for(int j = i + 1; j < n; j++)
{
if(x[i] < x[j])
{
if(maxim < y[j])
{
maxim = y[j];
}
}
}
y[i] = maxim + 1;
}
}
void afiseazaLungimeMaxima()
{
int maxim = 0;
for(int i = 0; i < n; i++)
{
if(maxim < y[i])
{
maxim = y[i];
}
}
printf("%d\n", maxim);
int element = maxim;
for(int i = 0; i < n; i++)
{
if(element == y[i])
{
element--;
printf("%d ", x[i]);
}
}
}
int main()
{
freopen("scmax.in", "r", stdin);
freopen("scmax.out", "w", stdout);
citire();
calculeazaLungimi();
afiseazaLungimeMaxima();
return 0;
}