Cod sursa(job #1098255)
| Utilizator | Data | 4 februarie 2014 17:58:28 | |
|---|---|---|---|
| Problema | Subsir crescator maximal | Scor | 35 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.63 kb |
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,nr,v[100099],l[100099],maxx,poz;
int main()
{
f>>n;
for (int i=1; i<=n; ++i) f>>v[i];
l[1]=1;
for(int i=2;i<=n;++i)
{
int aux=0;
for(int j=i-1;j>=1;--j)
if(v[j]<v[i] && l[j]>aux)aux=l[j];
l[i]=aux+1;
if(maxx<l[i])maxx=l[i];
}
g<<maxx<<'\n'; g<<v[poz]<<' ';
for (int i=poz+1; i<=n; ++i)
if (l[poz]==l[i]+1)
{
g<<v[i]<<' ';
poz=i;
}
g<<'\n';
g.close(); f.close();
return 0;
}
