Pagini recente » Cod sursa (job #2942884) | Cod sursa (job #907588) | Cod sursa (job #2340784) | Cod sursa (job #1626250) | Cod sursa (job #1785951)
#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");
int li=1;
b[n-1]=1;
int maxim=a[n-1];
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];
li=j;
}
b[i]=maxim+1;
}
fout<<maxim+1<<endl;
int val=maxim+1;
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;
}