Pagini recente » Monitorul de evaluare | Cod sursa (job #3280168) | Cod sursa (job #2360166) | Cod sursa (job #1963550) | Cod sursa (job #1736331)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream f("scmax.in");
ofstream g("scmax.out");
long long a[100001],n,i,maxim=1,m[100001],nr,j,p;
f>>n;
for(i=1;i<=n;i++)
{
f>>a[i];
}
m[n]=1;
p=n;
for(i=n-1;i>=1;i--)
{
nr=0;
for(j=i+1;j<=n;j++)
{
if(a[j]>a[i] && nr<m[j])
{
nr=m[j];
}
}
m[i]=nr+1;
if(m[i]>maxim)
{
maxim=m[i];
p=i;
}
}
g<<maxim<<"\n";
g<<a[p]<<" ";
for(i=p+1;i<=n;i++)
{
if(a[i]>a[p] && m[i]==maxim-1)
{
g<<a[i]<<" ";
maxim--;
}
}
return 0;
}