Pagini recente » Cod sursa (job #2736562) | Cod sursa (job #828787) | Cod sursa (job #1925251) | Cod sursa (job #2714342) | Cod sursa (job #2553620)
#include<fstream>
using namespace std;
ifstream cin("scmax.in");
ofstream cout("scmax.out");
const int N = 1000001;
int dp[N], v[N];
int n;
int pozmax , pre[N];
int Lung_Max;
int main() {
cin >> n;
for( int i =1 ;i <=n;i ++)
cin >> v[i];
for( int i =1 ;i <=n; i++)
{
dp[i] = 1;
for( int j =1; j < i ;j ++)
{
if(v[i] > v[j]) {
if(dp[i] <dp[j] + 1)
{
dp[i] = dp[j] + 1;
pre[i] = j;
}
}
}
if(Lung_Max < dp[i]) {
Lung_Max = dp[i];
pozmax = i ;
}
}
int k = 0, raspuns[N];
cout << Lung_Max << '\n';
for( int i = pozmax; i >=1; i = pre[i])
{
raspuns[++k] = v[i];
}
for ( int i = k ;i >=1 ;i --)
cout << raspuns[i] << " ";
return 0;
}