Pagini recente » Profil Eric_Radavoi | Cod sursa (job #1085535) | Cod sursa (job #2780841) | Cod sursa (job #919504) | Cod sursa (job #2096091)
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int main()
{
int a[100],b[100],p[100],s[100];
int i,j,N,m;
fin>>N;
for(i=1;i<=N;i++)
fin>>a[i];
b[1] = 1;
p[1] = 0;
int maxim;
for(i=2;i<=N;i++)
{
p[i] = 0;
maxim = 0;
for(j=1;j<i;j++)
if(a[j]<a[i] && maxim<b[j])
{maxim = b[j];
p[i] = j;}
b[i] = maxim + 1;
}
m = 1;
for(i=2;i<=N;i++)
if(b[m] < b[i]) m = i;
int k, kk;
k = b[m];
s[k] = a[m];
fout<<k<<'\n';
kk = k;
while(p[m])
{
m = p[m];
k--;
s[k] = a[m];
}
for(i=1;i<=kk;i++)
fout<<s[i]<<" ";
return 0;
}