Pagini recente » Cod sursa (job #1432363) | Cod sursa (job #1881979) | Cod sursa (job #2985071) | Cod sursa (job #2272523) | Cod sursa (job #1109500)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int Max,pMax,i,n,j,p_Max,Max_2,k=1,cont;
struct special
{
int a,l,s;
}v[100001];
int main()
{
f>>n;
for(i=1;i<=n;i++)
{
f>>v[i].a;
}
f.close();
v[n].l=1;
for(i=n-1;i>=1;i--)
{
Max=0;
pMax=0;
for(j=1+i;j<=n;j++)
{
if(v[j].l>Max && v[i].a<v[j].a)
{
Max=v[j].l;
pMax=j;
}
}
v[i].l=1+Max;
if(v[i].l>Max_2)
{
Max_2=v[i].l;
p_Max=i;
}
}
cont=Max_2;
v[k].s=v[p_Max].a;
k++;
Max_2--;
for(i=p_Max+1;i<=n && Max_2!=0;i++)
{
if(v[i].l==Max_2)
{
v[k].s=v[i].a;
k++;
Max_2--;
}
}
g<<cont<<"\n";
for(i=1;i<=cont;i++)
g<<v[i].s<<" ";
g.close();
return 0;
}