Pagini recente » Borderou de evaluare (job #156741) | Cod sursa (job #320947) | Cod sursa (job #36597) | Cod sursa (job #1727786) | Cod sursa (job #1496015)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream gout("scmax.out");
void scmax(int v[],int n)
{
int *lg = new int[n],maxim=0;
for(int i=0;i<n;++i)
lg[i]=0;
lg[n-1]=1;
for(int i=n-2;i>=0;--i)
{
int m = 0;
for(int j=i+1;j<n;++j)
if(v[i] < v[j])
m = max(m,lg[j]);
lg[i]=m+1;
maxim = max(maxim,lg[i]);
}
for(int i=0;i<n;++i)
if(maxim==lg[i]){
gout<<v[i]<<" ";
maxim--;
}
}
int main()
{
int n,*v;
fin>>n;
v = new int[n];
for(int i=0;i<n;++i)
fin>>v[i];
scmax(v,n);
return 0;
}