Pagini recente » Cod sursa (job #2771259) | Cod sursa (job #1400449) | Cod sursa (job #25473) | Cod sursa (job #2702206) | Cod sursa (job #2416342)
#include <fstream>
#define maxi 100005
using namespace std;
ifstream f ("scmax.in");
ofstream g("scmax.out");
int n,v[maxi];
int prv[maxi],smax[maxi];
void afis(int i)
{
if (prv[i]==0)
{
g<<v[i]<<" ";
return;
}
afis(prv[i]);
g<<v[i]<<" ";
}
int main()
{
f>>n;
for (int i=1;i<=n;i++)
f>>v[i];
prv[1]=-1;
smax[1]=1;
int maxim=1;
for (int i=2;i<=n;i++)
{
smax[i]=1;
for (int j=1;j<i;j++)
if (v[j]<v[i] && smax[j]+1>smax[i])
{
smax[i]=smax[j]+1;
prv[i]=j;
}
if (smax[maxim]<smax[i])
maxim=i;
}
g<<smax[maxim]<<'\n';
afis(maxim);
}