Cod sursa(job #721848)
Utilizator | Dumitru Andreea dumitruandr | Data | 24 martie 2012 12:08:38 |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.65 kb |
#include <fstream>
using namespace std;
int n,i,j,l,k,a[100001],m[100001],b[100001];
int main(){
ifstream f("scmax.in");
ofstream g("scmax.out");
f>>n;
for (i=1;i<=n;i++){
f>>a[i];
m[i]=1;
for (j=i-1;j>=1;j--) {
if (a[j]<a[i]&&m[j]>=m[i])
m[i]=m[j]+1;
if (m[j]==l)
j=1;}
if (m[i]>l)
l=m[i];
}
g<<l<<'\n';
k=l;
for (i=n;i>=1;i--)
if (m[i]==l){
b[l]=a[i];
l--;}
for (i=1;i<=k;i++)
g<<b[i]<<' ';
return 0;}