Pagini recente » Cod sursa (job #676276) | Cod sursa (job #2491055) | Cod sursa (job #3280850) | Cod sursa (job #349185) | Cod sursa (job #3251078)
#include <bits/stdc++.h>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
int v[1002] , l[1002];
int main(){
int n; in>>n;
for(int i = 1 ; i <= n ; i++)
{
in >> v[i];
}
l[n]=1;
for(int i = n-1 ; i >= 1 ; i--)
{
int maxim=0;
for(int j = i + 1; j <= n ; j++)
{
if(v[i] < v[j] && l[j] > maxim)
maxim = l[j];
}
l[i] = 1 + maxim;
}
// maximul din l
int max = 0;
for(int i = 1; i <= n; i++) {
if(l[i] > max)
max = l[i];
}
out<<max<< endl;
int i=0; v[0]= -1;
for(int j = 1; j <= n && max ; j++) {
if(l[j] == max && v[i] < v[j])
{ max--;
out << v[j] << " ";
i=j;
}
}
return 0;
}