Pagini recente » Cod sursa (job #1145621) | Cod sursa (job #2833602) | Cod sursa (job #1725984) | Cod sursa (job #2320030) | Cod sursa (job #2401827)
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,i,j,k,maxim;
int v[100001],l[100001];
int main()
{
f>>n;
for (i=1;i<=n;i++)
f>>v[i];
l[n]=1;
for (k=n-1;k>=1;k--)
{
maxim=0;
for (i=k+1;i<=n;i++)
if (v[i]>v[k] && l[i]>maxim)
maxim=l[i];
l[k]=maxim+1;
}
maxim=0;
int poz=0;
for (i=1;i<=n;i++)
if (l[i]>maxim)
{
maxim=l[i];
poz=i;
}
g<<maxim<<"\n";
g<<v[poz]<<" ";
for (i=poz+1;i<=n;i++)
if (v[i]>v[poz] && l[i]==maxim-1)
{
g<<v[i]<<" ";
maxim--;
}
return 0;
}