Pagini recente » Cod sursa (job #2927025) | Cod sursa (job #2509796) | Cod sursa (job #2185392) | Cod sursa (job #477969) | Cod sursa (job #1075073)
#include <fstream>
#include <cstring>
using namespace std;
int n,i,maxy,v[100001],j,maxyy,pozz,poz;
int a[100001];
bool OK;
int main()
{
ifstream f("scmax.in");
ofstream g("scmax.out");
f >>n;
for (i=1;i<=n;i++)
{
f >> a[i];
}
v[n]=1;
for (i=n-1;i>=1;i--)
{
maxy=0;
for (j=i+1;j<=n;j++)
{
if (v[j]>maxy&&a[j]>a[i])maxy=v[j];
}
v[i]=maxy+1;
}
for (i=1;i<=n;i++)
{
if (v[i]>maxyy){maxyy=v[i];poz=i;}
}
g << v[poz] << '\n';
while (poz<=n)
{
maxy=0;OK=false;
for (j=poz+1;j<=n;j++)
{
if (v[j]==v[poz]-1&&a[j]>a[poz]){pozz=j;OK=true;break;}
}
g << a[poz] << " ";
if (OK==true)poz=pozz;
else poz++;
}
return 0;
}