Pagini recente » Cod sursa (job #661919) | Cod sursa (job #1410033) | Cod sursa (job #1328630) | Cod sursa (job #2432227) | Cod sursa (job #2147674)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
int n, v[1005];
void lis(int v[], int n)
{
int** lis=new int*[n], x=0;
for(int i=0; i<n; i++)
lis[i]=new int[n],
lis[i][1]=i,
lis[i][0]=1;
for(int i=1; i<n; i++)
{
for(int j=0; j<i; j++)
{
if(v[j]<v[i]&&lis[j][0]+1>lis[i][0])
{
lis[i][0]=lis[j][0]+1;
for(int l=1; l<lis[i][0]; l++)
lis[i][l]=lis[j][l];
}
}
lis[i][lis[i][0]]=v[i];
}
for(int i=1; i<n; i++)
if(lis[x][0]<lis[i][0])x=i;
out<<lis[x][0]<<endl;
for(int i=1; i<=lis[x][0]; i++)
out<<lis[x][i]<<' ';
for(int i=0; i<n; i++)
delete[] lis[i];
delete[] lis;
}
int main()
{
in>>n;
for(int i=0; i<n; i++)
in>>v[i];
lis(v,n);
return 0;
}