Pagini recente » Cod sursa (job #118186) | Cod sursa (job #1022074) | Cod sursa (job #1541469) | Cod sursa (job #186986) | Cod sursa (job #1384603)
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int v[100001], lung [100001], pred[100001];
void subsir(int p)
{
if(pred[p])
subsir(pred[p]);
g<<v[p]<<" ";
}
int main()
{
int n,lmax,pr;
f>>n;
for(int i=1;i<=n;i++) f>>v[i];
lung [1]=1;
pred [1]=0;
for(int i=2;i<=n;i++)
{
lmax=0, pr=0;
for(int j=1;j<i;j++)
{
if(v[j]<v[i])
{
if(lung[j]>lmax)
{
lmax=lung[j];
pr=j;
}
}
}
lung[i]=1+lmax;
pred[i]=pr;
}
//g<<lmax<<"\n";
int elmax=1;
for(int i=2;i<=n;i++)
if(lung[elmax]<lung[i]) elmax=i;
g << lung[elmax] << "\n";
subsir(elmax);
//for(int i=1;i<=n;i++) g<<lung[i]<<" ";
return 0;
}