Pagini recente » Cod sursa (job #698313) | Cod sursa (job #2361740) | Cod sursa (job #2921052) | Cod sursa (job #2521578) | Cod sursa (job #1919984)
#include <bits/stdc++.h>
using namespace std;
int n,m,d[100005],a[100005],mi,pred[100005];
void print(int i)
{
if (d[i] != 1)
{
print(pred[i]);
}
printf("%d ",a[i]);
}
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for (int i = 0; i<n; ++i)
{
scanf("%d",&a[i]);
d[i] = 1;
}
for (int i = 1; i<n; ++i)
{
for (int j = 0; j<i; ++j)
{
if (a[i] > a[j] && d[i] < d[j] + 1)
{
pred[i] = j;
d[i] = d[j] +1;
}
}
}
m = mi = 0;
for (int i = 0; i<n; ++i)
{
if (m < d[i])
{
m = d[i];
mi = i;
}
}
printf("%d \n",d[mi]);
print(mi);
}