Nu aveti permisiuni pentru a descarca fisierul grader_test4.in
Cod sursa(job #1552743)
Utilizator | Data | 18 decembrie 2015 16:09:37 | |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 1.2 kb |
#include <cstdio>
using namespace std;
int n;
int x[100]; //sir initial
int y[100]; //sir cu lungimi
int sir[100];
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;
}