Pagini recente » Cod sursa (job #2319802) | Cod sursa (job #2796837) | Cod sursa (job #3237999) | Cod sursa (job #2503102) | Cod sursa (job #2590306)
#include <fstream>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
const int N=100000;
int v[N+1],lung[N+1],pred[N+1],sir[N+1];
int main()
{
int n,maxp=0,cnt=0;
in>>n;
for(int i=0; i<n; i++)
{
in>>v[i];
pred[i]=-1;
}
for(int i=0; i<n; i++)
{
lung[i]=0;
for(int j=0; j<i; j++)
{
if(v[j]<v[i])
{
if(lung[j]>lung[i])
{
lung[i]=lung[j];
pred[i]=j;
}
}
}
lung[i]++;
if(lung[i]>maxp) maxp=i;
}
out<<lung[maxp]<<"\n";
while(maxp>-1)
{
sir[cnt++]=v[maxp];
maxp=pred[maxp];
}
for(int i=cnt-1; i>=0; i--) out<<sir[i]<<" ";
return 0;
}