Pagini recente » Cod sursa (job #2915366) | Cod sursa (job #2939621) | Cod sursa (job #2188604) | Cod sursa (job #2333757) | Cod sursa (job #1665086)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int v[100001], lungmax[100001], parc[100001];
void afis(int p)
{
if(parc[p]!=0)
{
afis(parc[p]);
}
g<<v[p]<<" ";
}
int main()
{
int n,i,j,pmax;
f>>n>>v[1];
lungmax[1]=1;
parc[1]=0;
pmax=1;
for(i=2;i<=n;i++)
{
f>>v[i];
lungmax[i]=0;
for(j=1;j<=i;j++) if(v[i]>v[j]) if(lungmax[j]>lungmax[i]) {parc[i]=j; lungmax[i]=lungmax[j];}
lungmax[i]++;
if(lungmax[i]>lungmax[pmax]) pmax=i;
}
g<<lungmax[pmax]<<"\n";
afis(pmax);
g.close();
return 0;
}