Cod sursa(job #2426150)

Utilizator matei123Biciusca Matei matei123 Data 26 mai 2019 13:43:39
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include<fstream>
using namespace std;
ifstream f("scmax.in"); ofstream g("scmax.out");
int best[100003],a[100003],maxim,sol=0,poz[100003],p,n;
void dinamic()
{   best[n]=1;
    poz[n]=-1;
    maxim=1; p=n;
    for(int i=n-1;i>=1;--i)
    {   best[i]=1; poz[i]=-1;
        for(int j=i+1;j<=n;++j)
            if(a[i]<a[j] && best[i]<best[j]+1)
            {   best[i]=best[j]+1;
                poz[i]=j;
                if(best[i]>maxim) maxim=best[i],p=i;
            }
    }
}
void constr()
{   int i;
    i=p;
    while(i!=-1)
    {   g<<a[i]<<" ";
        i=poz[i];
    }
}
int main()
{   f>>n;
    for(int i=1;i<=n;++i) f>>a[i];
    dinamic();
    g<<maxim<<'\n';
    constr();
    g.close(); return 0;
  }