Pagini recente » Cod sursa (job #3226568) | Cod sursa (job #2207712) | Cod sursa (job #408440) | Cod sursa (job #1295585) | Cod sursa (job #2694042)
#include <bits/stdc++.h>
#define N 100005
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n, a[N];
int i, j;
int L[N], drum[N], k;
void Scmax()
{
L[n]=1;
drum[n]=n;
for(i=n; i>=1; i--)
{
L[i]=1;
drum[i]=1;
for(j=i+1; j<=n; j++)
if(a[i] < a[j] && L[i] <= L[j])
{
L[i]=L[j]+1;
drum[i]=j;
}
}
int mx=1;
for(i=1; i<=n; i++)
if(mx < L[i])
{
mx=L[i];
k=i;
}
}
void Afisare()
{
fout << L[k] <<"\n";
for(i=1, j=k; i<=L[k]; i++, j=drum[j])
fout << a[j] <<" ";
}
int main()
{
fin >> n;
for(i=1; i<=n; i++)
fin >> a[i];
Scmax();
Afisare();
return 0;
}