Pagini recente » Cod sursa (job #1573107) | Monitorul de evaluare | Cod sursa (job #1524447) | Cod sursa (job #1538598) | Cod sursa (job #1488691)
#include<fstream>
#define DM 100006
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int N,Max,BS;
int X[DM],Best[DM],Succ[DM];
int main()
{
int i,j;
fin>>N;
for(i=1; i<=N; ++i)
fin>>X[i];
for(i=N; i>=1; --i)
{
for(j=i+1;j<=N;++j)
if(X[i]<X[j])
{
if(Best[i]<Best[j])
{
Best[i]=Best[j];
Succ[i]=j;
}
}
L[i]++;
}
for(i=1;i<=N;++i)
if(Best[i]>Max)
{
Max=Best[i];
BS=i;
}
fout<<Max<<"\n";
i=BS;
while(i)
{
fout<<X[i]<<" ";
i=Succ[i];
}
fout<<"\n";
fin.close();
fout.close();
return 0;
}