Pagini recente » Cod sursa (job #55883) | Cod sursa (job #366769) | Arhiva de probleme | Cod sursa (job #3282080) | Cod sursa (job #1797083)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
#define MAXN 100010
int n,v[MAXN],poz[MAXN],tata[MAXN],maxim,j,x,sir[MAXN],sol[MAXN];
void afis(int nod,int pozitie)
{
while(poz[pozitie]!=nod)
pozitie--;
if(nod>1)
afis(nod-1,pozitie-1);
g<<v[nod]<<' ';
}
int main()
{
f>>n;
for(int i=1;i<=n;i++)
{
f>>v[i];
j=1;
while(sir[j]<v[i]&&j<=maxim)
j++;
sir[j]=v[i];
poz[i]=j;
maxim=max(maxim,j);
}
g<<maxim<<'\n';
afis(maxim,n);
return 0;
}