Pagini recente » Cod sursa (job #2398117) | Cod sursa (job #1803205) | Cod sursa (job #1409606) | Cod sursa (job #1485346) | Cod sursa (job #1366597)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
const int nmax=100001;
int n,a[nmax],best[nmax];
void subsir2()
{
ifstream fin("scmax.in");
fin>>n;
vector<int> vec[n+1];
for(int i=1;i<=n;++i)
{fin>>a[i];
vec[i].push_back(i);
}
ofstream fout("scmax.out");
int bmax=0;
for(int i=1;i<=n;++i)
best[i]=1;
for(int i=n-1;i>=1;--i)
for(int j=i+1;j<=n;++j)
if(a[i]<a[j] && best[i]<=best[j])
{
best[i]=best[j]+1;
vec[i]=vec[j];
vec[i].push_back(i);
}
for(int i=1;i<=n;++i)
if(best[bmax]<best[i])
bmax=i;
fout<<best[bmax]<<"\n";
for(int i=vec[bmax].size()-1;i>=0;--i)
fout<<a[vec[bmax][i]]<<" ";
}
int main()
{
subsir2();
return 0;
}