Pagini recente » Cod sursa (job #1528626) | Cod sursa (job #1505268) | Cod sursa (job #1097472) | Cod sursa (job #1572676) | Cod sursa (job #2420444)
#include <fstream>
#define N 100005
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int a[N],n,dp[N],drum[N],poz;
void Citire()
{ int i;
fin>>n;
for(i=1;i<=n;i++)
fin>>a[i];
}
void Parcurgere()
{ int i,j;
for(i=1;i<=n;i++)
{ dp[i]=1; drum[i]=i;
for(j=1;j<i;j++)
if(a[j]<a[i])
if(dp[j]+1>dp[i])
{ dp[i]=dp[j]+1;
drum[i]=j;
}
}
int vmax=0;
for(i=1;i<=n;i++)
if(dp[i]>vmax) {vmax=dp[i]; poz=i;}
fout<<vmax<<"\n";
}
void AfisareDrum(int p)
{ if(p!=drum[p])
{ AfisareDrum(drum[p]);
fout<<a[p]<<" ";
}
else
{ fout<<a[p]<<" ";
return;
}
}
int main()
{ Citire();
Parcurgere();
AfisareDrum(poz);
return 0;
}