Pagini recente » Cod sursa (job #3248001) | Cod sursa (job #560064) | Cod sursa (job #1282124) | Cod sursa (job #821614) | Cod sursa (job #2963614)
#include<fstream>
using namespace std;
const int N=1e5;
int v[N+1], lung[N+1], n;
ifstream fin("scmax.in");
ofstream fout("scmax.out";)
void refac_subsir(int p, int l, int val)
{
if(l==0)
return;
if(lung[p]==l && v[p] < val)
{
refac_subsir(p-1, l-1, v[p]);
fout << v[p] << " ";
}
else
{
refac_subsir(p-1, l, val);
}
}
int main()
{
fin >> n;
int pmax=1;
for(int i=1; i<=n; i++)
{
int l_j=0;
fin >> v[i];
for(int j=1; j<i; j++)
{
if(v[j]<v[i])
{
if(lung[j]>l_j)
l_j=lung[j];
}
}
lung[i]=1+l_j;
if(lung[i]>lung[pmax])
{
pmax=i;
}
}
fout << lung[pmax] << "\n";
refac_subsir(pmax, lung[pmax], v[pmax]+1);
return 0;
}