Pagini recente » Cod sursa (job #1100857) | Cod sursa (job #2456727) | Cod sursa (job #1316580) | Cod sursa (job #1119322) | Cod sursa (job #1120408)
#include <cstdio>
#include <vector>
#define dmax 100001
using namespace std;
int a[dmax], sol[dmax], n, poz[dmax], s;
void read()
{
freopen("scmax.in", "r", stdin);
freopen("scmax.out", "w", stdout);
scanf("%i", &n);
for(int i=1;i<=n;i++)
{
scanf("%i", &a[i]);
}
}
void solve()
{
//for(int i=1;i<=n;i++)
//sol[i]=1;
for(int i=1;i<=n;i++)
{
int amax=1;
for(int j=1;j<i;j++)
if(a[j]<a[i] && sol[j]+1>amax)
amax=sol[j]+1, poz[i]=j;
if(amax>sol[s])
s=i;
sol[i]=amax;
}
}
int main()
{
read();
solve();
printf("%i\n", sol[s]);
int i=s;
vector <int> solf;
while(i!=0)
{
//printf("%i ", a[i]);
solf.push_back(a[i]);
i=poz[i];
}
int g=solf.size();
for(int i=g-1;i>=0;i--)
{
printf("%i ", solf[i]);
}
printf("\n");
return 0;
}