Pagini recente » Cod sursa (job #759931) | Cod sursa (job #1234064) | Cod sursa (job #1069940) | Istoria paginii runda/simulare_fmi_nostress_5/clasament | Cod sursa (job #2043945)
#include <fstream>
using namespace std;
ifstream fi("scmax.in");
ofstream fo("scmax.out");
int A[100001],B[100001],U[100001];
int n,pmax;
int vfc;
int main()
{
fi>>n;
for(int i=1;i<=n;i++)
fi>>A[i];
for(int i=n;i>=1;i--)
{
int v=0;
U[i]=0;
for(int j=i+1;j<=n;j++)
if(A[i]<A[j])
if (B[j]>v)
{
v=B[j];
U[i]=j;
}
B[i]=v+1;
}
pmax=1;
for (int i=2;i<=n;i++)
if (B[i]>B[pmax])
pmax=i;
fo<<B[pmax]<<"\n";
/// se reconstituie sirul
vfc=pmax;
while (vfc!=0)
{
fo<<A[vfc]<<" ";
vfc=U[vfc];
}
fi.close();
fo.close();
return 0;
}