Cod sursa(job #1369351)
Utilizator | Poenar Bianca biannca | Data | 2 martie 2015 23:58:42 |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 35 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.68 kb |
#include <iostream>
#include<fstream>
#define m 100000
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int a[m],mmax=0,n,l[m],t,mx,pozi;
int main()
{
int i,j;
fin>>n;
l[n]=1;
for(i=1;i<=n;i++)
{
fin>>a[i];
}
for(i=n-1;i>0;i--)
{
mx=0;
for(j=i+1;j<=n;j++)
if(a[j]>a[i] &&l[j]>mx)
mx=l[j];
l[i]=mx+1;
if(l[i]>mmax)
{
mmax=l[i];
pozi=i;
}
}
fout<<mmax<<'\n';
fout<<a[pozi]<<" ";
for(i=pozi+1;i<=n;i++)
if(a[i]>a[pozi] && l[i]==mmax-1)
fout<<a[i]<<" ";
return 0;
}