Cod sursa(job #2962484)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 8 ianuarie 2023 17:33:07
Problema Subsir 2 Scor 61
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<fstream>
using namespace std;
ifstream F("subsir2.in");
ofstream G("subsir2.out");
int n,i,a[5001],l[5001],p[5001],m,j,r[5001],k,q;
int main()
{
    for(F>>n,i=1;i<=n;F>>a[i++]);
    for(l[n]=1,i=n-1;i;l[i]=l[i]==5001?1:l[i],--i)
        for(m=1000001,l[i]=5001,j=i+1;j<=n;++j)
            if(a[j]>=a[i]&&a[j]<=m)
                if(m=a[j],l[i]>=l[j]+1)
                    l[i]=l[j]+1,p[i]=j;
    for(i=1;i<=n;++r[p[i++]]);
    for(j=1,i=2;i<=n;++i)
        if(!r[i]&&l[i]<=l[j]&&a[i]<a[j]) {
            for(k=i,q=0;k;++q,k=p[k]);
            if(q==l[i])
                j=i;
        }
    for(G<<l[j]<<'\n';j;G<<j<<' ',j=p[j]);
    return 0;
}