Pagini recente » Cod sursa (job #324579) | Cod sursa (job #1792562) | Cod sursa (job #3266226) | Cod sursa (job #2524354) | Cod sursa (job #1052763)
#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;
int main()
{
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n ;
fin >> n;
if (n<50000) {
unsigned long a[50000];
for (int i=0; i<n; i++)
fin >> a[i];
int rez[50000];
for (int i=0; i<n; i++)
rez[i] = 1;
for (int i=0;i<=n;i++)
{
for (int j=0;j<i;j++)
{
if ((a[i]>a[j]) && (rez[i]<rez[j]+1))
{
rez[i] = rez[j] +1 ;
}
}
}
int max=rez[0];
for (int i=1;i<n;++i)
{
if (rez[i]>max) max=rez[i];
}
max;
fout << max << endl;
unsigned long sir[50000];
int k=0;
for (int i=n-1 ; i>=0; i--)
{
if (rez[i] == max) { sir[k] = a[i]; k++; max--; }
}
cout << k <<endl;
_getch();
for (int i=(k-1); i>=0; i--)
fout << sir[i] << " ";
fin.close();
fout.close();
} else return 0;
return 0;
}