Pagini recente » Cod sursa (job #1035446) | Cod sursa (job #1133794) | Cod sursa (job #3032065) | Cod sursa (job #848815) | Cod sursa (job #2372356)
#include <bits/stdc++.h>
#define NM 100005
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int v[NM],dp[NM],lgm,ind;
void Write(int ind,int lgm)
{ if(ind)
{ int k=ind-1;
while(dp[k]!=lgm-1) k--;
Write(k,lgm-1);
g<<v[ind]<<' ';
}
}
int main()
{ int n;
f>>n;
for(int i=1; i<=n; i++) f>>v[i];
dp[1]=1;
for(int i=2; i<=n; i++)
{ int nrap=0;
for(int j=1; j<i; j++)
if(v[j]<v[i] && dp[j]>nrap) nrap=dp[j];
dp[i]=nrap+1;
if(dp[i]>lgm)
{ lgm=dp[i];
ind=i;
}
}
/*for(int i=1; i<=n; i++) g<<v[i]<<' ';
g<<'\n';
for(int i=1; i<=n; i++) g<<dp[i]<<' ';*/
g<<lgm<<'\n';
Write(ind,lgm);
return 0;
}