Pagini recente » Cod sursa (job #762352) | Cod sursa (job #2331793) | Cod sursa (job #2711215) | Cod sursa (job #636816) | Cod sursa (job #1920024)
#include <bits/stdc++.h>
using namespace std;
int a[100005];
int poz[100005];
int sol[100005];
int n, k;
ofstream fout("scmax.out");
void Read()
{
int i;
ifstream fin("scmax.in");
fin >> n;
for(i = 1; i <= n; i++)
fin >> a[i];
fin.close();
}
void Form()
{
int mx;
int i, j;
poz[1] = 1;
for(i = 2; i <= n; i++)
{
mx = 0;
for(j = i - 1; j >= 1; j--)
if(a[j] < a[i] && mx < poz[j])
mx = poz[j];
poz[i] = mx + 1;
}
mx = -1;
for(i = 1; i <= n; i++)
mx = max(mx, poz[i]);
fout << mx << "\n";
for(i = n; i >= 1; i--)
{
if(poz[i] == mx)
{
mx--;
sol[++k] = a[i];
}
}
for(i = k; i >= 1; i--)
fout << sol[i] << " ";
fout.close();
}
int main()
{
Read();
Form();
return 0;
}