Pagini recente » Cod sursa (job #2080844) | Cod sursa (job #606876) | Cod sursa (job #1304774) | Cod sursa (job #1906469) | Cod sursa (job #1785956)
#include <iostream>
#include <fstream>
using namespace std;
void Citire(int a[100001], int &n)
{
ifstream fin("scmax.in");
fin>>n;
for(int i=0; i<n; i++)
fin>>a[i];
}
void Prelucrare(int a[100001], int n, int b[100001])
{
ofstream fout("scmax.out");
b[n-1]=1;
int maxim;
for(int i=n-2; i>=0; i--)
{
maxim=0;
for(int j=i+1; j<n; j++)
if(a[i]<a[j])
if(b[j]>maxim)
maxim=b[j];
b[i]=maxim+1;
}
for(int j=0; j<n; j++)
if(b[j]>maxim)
maxim=b[j];
fout<<maxim<<endl;
int val=maxim;
for(int i=0; i<n; i++)
{
if(b[i]==val)
{
fout<<a[i]<<" ";
val--;
}
}
/*for(int i=0; i<n; i++)
cout<<b[i]<<" ";*/
}
int main()
{
int a[100001], n;
int b[100001];
Citire(a, n);
Prelucrare(a, n, b);
return 0;
}