Pagini recente » Cod sursa (job #16877) | Cod sursa (job #1387124) | Cod sursa (job #312416) | Cod sursa (job #3191415) | Cod sursa (job #1183219)
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
const int N=100000;
int v[N+1], t[N+1], s[N+1],n;
void lant(int k){
g<<v[k]<<" ";
if(t[k]!=0)
lant(t[k]);
}
int main()
{
int i,max,j,k,max1=0,p;
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
s[n]=1;
for(i=n-1;i>=1;i--){
max=0;
t[n]=0;
for(j=i+1;j<=n;j++)
if(v[i]<v[j] &&s[j]>max){
max=s[j];
k=j;
}
s[i]=max+1;
t[i]=k;
if(s[i]>max1){
max1=s[i];
p=i;
}
}
g<<max1<<"\n";
lant(p);
return 0;
}