Pagini recente » Cod sursa (job #1847752) | Cod sursa (job #812691) | Cod sursa (job #2427470) | Cod sursa (job #1832260) | Cod sursa (job #1379449)
#include <fstream>
#include <vector>
using std::vector;
int main(){
std::ifstream fin("scmax.in");
std::ofstream fout("scmax.out");
unsigned n; fin>>n;
vector<unsigned> a(n);
for(unsigned i=0;i<n;++i) fin>>a[i];
vector<unsigned> best(n,1);
vector<unsigned> prev(n);
for(unsigned i=1;i<n;++i)
for(int j=i-1;j>=0;--j)
if(a[j]<a[i]&&best[j]+1>best[i]){
best[i]=best[j]+1;
prev[i]=j;
}
unsigned max=0,maxi;
for(unsigned i=0;i<n;++i) if(best[i]>max){ max=best[i]; maxi=i;}
fout<<max<<'\n';
vector<unsigned> values(max);
for(unsigned i=0;i<max;++i){
values[i]=a[maxi];
maxi=prev[maxi];
}
for(int i=max-1;i>=0;--i) fout<<values[i]<<' ';
fout<<'\n';
}