Pagini recente » Borderou de evaluare (job #535957) | Borderou de evaluare (job #1031581) | Borderou de evaluare (job #1363907) | Borderou de evaluare (job #487742) | Cod sursa (job #1800269)
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
long long n,i,v[100000],max1,l[100000],j,lmax,vmax;
int main()
{
f>>n;
for (i=1; i<=n; i++)
f>>v[i];
l[n]=1;
for (i=n-1; i>=1; i--)
{
max1=0;
for (j=i+1; j<=n; j++)
if (v[i]<v[j] && l[j]>max1 ) max1=l[j];
l[i]=1+max1;
}
int i1;
max1=0;
for (i=1; i<=n; i++)
if (l[i]>max1)
{
i1=i;
max1=l[i];
};
g<<max1<<'\n';
g<<v[i1]<<' ';
lmax=l[i1];
vmax=v[i1];
for (i=i1; i<=n; i++)
if (l[i]==lmax-1 && v[i]>vmax)
{
g<<v[i]<<' ';
lmax--;
vmax=v[i];
}
return 0;
}