Mai intai trebuie sa te autentifici.
Cod sursa(job #260857)
| Utilizator | Data | 17 februarie 2009 17:07:54 | |
|---|---|---|---|
| Problema | Subsir crescator maximal | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include<iostream>
#include<fstream>
using namespace std;
int a[100000], n, l[100000], poz[100000],i, j,pozmax;
int main()
{int max;
ifstream f("scmax.in");
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
f.close();
max=-1;pozmax=1;
l[n]=1; poz[n]=-1;
for(i=n-1;i>=1;i--)
{ l[i]=1;poz[i]=-1;
for(j=i+1;j<=n;j++)
if(a[i]<a[j]&&l[i]<1+l[j])
{l[i]=1+l[j]; poz[i]=j;
if(l[i]>max)
{ max=l[i]; pozmax=i;}
}
}
ofstream g("scmax.out");
g<<max<<endl;
for(i=pozmax;i!=-1;i=poz[i])
g<<a[i]<<" ";
g.close();
return 0;
}
