Pagini recente » Cod sursa (job #349152) | Cod sursa (job #1047315) | Cod sursa (job #1199342) | Cod sursa (job #2162668) | Cod sursa (job #2558174)
#include <fstream>
#include <stdlib.h>
#include <vector>
#include <algorithm>
using namespace std;
struct ki_van_a_faszom
{
vector<int>y;
};
vector<ki_van_a_faszom>x;
int index;
int lis(int arr[], int n)
{
int *lis, i, j, maxi = 0;
lis = (int*)malloc(sizeof(int) * n);
for (i=0; i<n; i++)
lis[i]=1;
x.resize(n);
for (i=0;i<n;i++)
{
x[i].y.push_back(arr[i]);
for (j = 1; j <=i; j++)
if (arr[i]>arr[j] && lis[i]<lis[j]+1)
{
lis[i]=lis[j]+1;
x[i].y.push_back(arr[j]);
}
if (maxi<lis[i])
{
maxi=lis[i];
index=i;
}
}
free(lis);
return maxi;
}
int main()
{
ifstream fasz("scmax.in");
ofstream cout("scmax.out");
int arr[10001],n;
fasz>>n;
for(int i=1;i<=n;++i)
fasz>>arr[i];
cout<<lis(arr,n)<<endl;
sort(x[index].y.begin(), x[index].y.end());
for(auto e:x[index].y)
cout<<e<<" ";
/*for(int i=1;i<n;++i)
{
cout<<i<<":\n";
for(auto e:x[i].y)
cout<<e<<" ";
cout<<endl;
}*/
return 0;
}